問題タブ [land-of-lisp]

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.

0 投票する
4 に答える
176 参照

common-lisp - Lisp のデータモードを理解しているのに、これらの式が同じでないのはなぜですか?

現在、「Land of Lisp」を読んでいます。最近のコード サンプルの 1 つで、著者は次のように指定しました。

シンボルが大文字と小文字を区別しないことを証明します。数ページ後、データモードが正式に導入されました。

しかし、私は次のことを本当に理解していません。eqは関数なので、その名前も大文字と小文字を区別しません。したがって、私はこれを行うことができるはずです:

偉大な。それは期待どおりに機能しました。しかし、これをデータモードのリストに入れるとどうなるでしょうか? 心に留めておいてください、私は自分にとって新しいことを試しているだけです。

うーん。わかった?何故ですか?同じ記号を 2 つのリストに入れると、それらのリストは等しいと見なされると予想していました。

ここで質問: リストの内容が比較されるのではなく、リストの「オブジェクト」自体が比較されるということですか? 私は何が欠けていますか?

0 投票する
2 に答える
285 参照

lisp - 連想関数を含むリストの Cadr

私はネット上を見回しましたが、私の質問に対する答えが見つかりません。この投稿の評価を下げることなく、誰かが良い答えを提供してくれたら本当にありがたいです。

Lisp ではcar、私にとって意味のあるcdrようなデータモードで使用されます。'(whatever here)

現在、本Land of Lispで、著者はテキスト エンジンの構築方法を説明していて、突然、次の記述を使用して関数を作成しています。

なぜ彼がリストに対して cadr を実行しているのか、なぜそれがエラーではなく応答を提供するのか尋ねてもよろしいですか? データモード、つまり開始ブラケットの前に引用符を付けるべきではありません'(whatever here)か?

また、なぜ彼は assoc を in(assoc location nodes)と notのように使用しているのですか?(assoc 'garden *nodes*)

2番目の正しい使用方法ではありませんassocか? 全体像を見逃している可能性があるため、これらの重要なポイントを説明してくれる人に本当に感謝します.

どうもありがとう!

0 投票する
1 に答える
98 参照

graph - CLISP でドット リスト (エッジ) からノードを抽出する

私は Lisp World の "Nil" または () です。
エッジ リスト内のすべてのノードのリストを取得したかったので、この問題を解決するコードを書きました。しかし、私はいくつかの予期しない問題に遭遇しました。

(「Land of Lisp」のコード - 第 8 章)

以下のようにすべてのノードをリストとして抽出するコードを書きました。

私のコードはそれほど悪くないと思っていましたが、結果は恥ずかしいエラーメッセージを示しました。

スタックオーバーフロー?私のコードの再帰関数が原因だと思います。どうすればこれを適切に修正できますか?

0 投票する
2 に答える
426 参照

lisp - LISP: RPLACA/RPLACD/NCONC を使用して LISP でリストを反転する

だから私は関数がリストを取り、それを元に戻すようにしようとしていますが、RPLACA/ RPLACD/をどのように使用するのかわかりませんNONC。基本的に reverse と同じことを行いますが、元のリストのコンス ノードを使用し、新しいコンス ノードを割り当てません。私がこれまでに持っているのは

0 投票する
1 に答える
225 参照

overflow - Wumpus ゲームの make-city-edges 関数がヒープ オーバーフローを引き起こす

Land of Lisp の本を読んで、make-city-edges関数を定義する Grand Theft Wumpus ゲームにたどり着きました。ただし、実行しようとすると、SBCLがしばらくハングしてから、非常に厄介なエラーが表示されます

間違いがないか三重にチェックしましたが、何も見つかりませんでした。

問題の原因となっている機能は次のとおりです。

[ここ] は、他の機能を見たい場合の残りのコードです。質問でスペースを取りすぎるため、GitHub Gist ページに追加しました。

これを解決するにはどうすればよいですか? 私はプロジェクトのためにonEmacs 24.4 (9.0)OSX 10.9使用しています。SLIMESBCL 1.2.10