問題タブ [htdp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
user-interface - Lisp を使用して GUI を作成する方法: DrScheme または Common Lisp
または、GUI を作成するために必要な基本的な作業。GUI の基本的なコンポーネントは知っていますが、どこから始めればよいでしょうか。私はただの独学者で、本の最後にある「プログラムの設計方法」(HtDP) を読んでいますが、著者は、プログラマーになるには GUI と CGI コンピューター ネットワークの知識が必要であると示唆しています。最後の 2 つの情報は簡単に見つけることができます。しかし、GUI の作成方法について説明している本はほとんどないようです。おそらく、コンピューター プログラムを設計するプロセスでは、ほとんどの人が気にしないほど「低すぎる」と思います。
scheme - 関数本体で2つの関数呼び出しを行うことができないのはなぜですか?
そこで、プログラムの設計方法第2版の最初の章を読みます。私はかなり良い進歩を遂げたと思います。しかし、グリッドに別のグラフィックを追加するための「提案」があります。試行するたびにエラーが発生します。この時点で、私は立ち往生しています。以下はコードとエラーです。
注:ROCKETイメージは第1章にあります。コピーしてIDEに貼り付けました。
注:「提案」は次のとおりです。ロケットがシーンの下部より10ピクセル高い平らな岩盤に着陸するように、プログラムをどのように変更しますか?景色も忘れずに変えてください。
動作するコードは次のとおりです。
動作しないコードは次のとおりです。
そして、私が得るエラーは次のとおりです。
定義:関数本体に1つの式のみが必要ですが、余分な部分が1つ見つかりました
scheme - HtDW は HtDP とどのように相関しますか?
そのため、How to Design Worlds (HtDW) と呼ばれる How to Design Programs (HtDP) のコンパニオン PDF があります。そして、HtDWの読み取りを開始できるようにするには、HtDPをどれだけ読み取る/知る必要があるのでしょうか? この 2 冊の章は何らかの形で関連していますか?
syntax - なぜこの合法的な(ラケット)スキームなのですか?
私はhtdpを調べていて、これを最初のどこかで見つけました:-
次の文が違法な定義である理由を説明してください:1。(define(f'x)x)
ただし、ラケットでは正常に機能します。
明らかに、私は何かが欠けています...正確には何ですか?
emacs - Scribble または HTDP サンプル コード例を模倣するための Racket Emacs モード?
「プログラムの設計方法」全体で、コード サンプルの構文の強調表示と色分けが非常に気に入っています。例えば:
http://www.htdp.org/2003-09-26/Book/curriculum-ZH-9.html#node_sec_6.5
ソースコードを編集するための Emacs メジャーモードの出発点として、このようなものを持っている人はいますか?
image - ラケットで画像サイズを変更する方法
を使用してゲームを作成してracket
おり、背景 bitmap
画像が必要です。しかし、選択した画像が大きすぎます。サイズを変更するにはどうすればよいですか?私が持っているもの:
scheme - これを末尾再帰関数に変えることはできますか?
HtDPを通過すると、次の問題に遭遇しました。関数乗算を設計します。自然数 n を消費し、* を使用せずに任意の数 x で乗算します。
これは私が思いついたものです:
動作しますが、最善の解決策ではないと考えています。私の理解に基づいて、これは for ループとして解決できるため、末尾再帰にする必要があります。
scheme - ビッグバン関数のwsは実際に何を表していますか?
最初のパラメーターは数値であり、世界の状態として記述されていることを私は知っています。しかし、それは私には漠然とした用語のように思えます。基本的に、この数字が実際に/実際に何を表しているのかわかりません。これまで見てきた2つの例は、「カウントダウンメカニズム」と「移動するピクセル数」です。正確には何をしているのですか?
私はHtDP(第2版)の第2章に取り組んでいます
racket - 画像の行と列を作成するにはどうすればよいですか?
まず、HtDP 2nd Editionを使用しており、BSL言語パックを使用しています。
私は現在、エクササイズ 131を行っています。
その上、上にある場所の画像を見ていますが、これを行う方法について目立ったものはありません。これらの関数は、画像のリストではなく、個々の画像を受け取ります。例: (besides (list rect1 rect2 rect3)) とは対照的に (besides rect1 rect2 rect3)。さらに、関数の定義方法を見ると、関数自体が独立しているため、画像が重複しているように見えます。基本的に、私が話している重複は、各行の最初の画像にあります。
私は答えを探しているわけではありません (ただし、あなたが見つけた場合はそれを受け取ります) が、ヒント、サイン、正しい方向への神の介入.
scheme - ラケットでこの補助機能を改善するにはどうすればよいですか?
私はHtDPの第4章でBSL言語を使用して作業しています。
私が取り組んでいた問題は次のとおりです。
演習136:メインを実行し、スペースバーを押して(ショットを発射)、しばらく待つと、ショットがキャンバスから消えます。ただし、ワールドキャンバスをシャットダウンすると、この目に見えないショットがまだ含まれているワールドになります。
代替のtock関数を設計します。これは、ショットをクロックティックごとに1ピクセル移動するだけでなく、座標がキャンバスの上に配置されているショットを削除します。ヒント:再帰的なcond句の補助関数の設計を検討することをお勧めします。
私が思いついた解決策は以下のとおりです(スポイラーで)。しかし、私は何か冗長なことをしているように感じます。基本的に、補助関数の私の適用は完全に正しくありません。
更新:(
これは以前よりもはるかにクリーンです)
追加されたテスト:
私はまだテストに取り組んでいます。
ワールド関数が追加されたテスト: