問題タブ [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.
common-lisp - Lisp のデータモードを理解しているのに、これらの式が同じでないのはなぜですか?
現在、「Land of Lisp」を読んでいます。最近のコード サンプルの 1 つで、著者は次のように指定しました。
シンボルが大文字と小文字を区別しないことを証明します。数ページ後、データモードが正式に導入されました。
しかし、私は次のことを本当に理解していません。eq
は関数なので、その名前も大文字と小文字を区別しません。したがって、私はこれを行うことができるはずです:
偉大な。それは期待どおりに機能しました。しかし、これをデータモードのリストに入れるとどうなるでしょうか? 心に留めておいてください、私は自分にとって新しいことを試しているだけです。
うーん。わかった?何故ですか?同じ記号を 2 つのリストに入れると、それらのリストは等しいと見なされると予想していました。
ここで質問: リストの内容が比較されるのではなく、リストの「オブジェクト」自体が比較されるということですか? 私は何が欠けていますか?
lisp - 連想関数を含むリストの Cadr
私はネット上を見回しましたが、私の質問に対する答えが見つかりません。この投稿の評価を下げることなく、誰かが良い答えを提供してくれたら本当にありがたいです。
Lisp ではcar
、私にとって意味のあるcdr
ようなデータモードで使用されます。'(whatever here)
現在、本Land of Lispで、著者はテキスト エンジンの構築方法を説明していて、突然、次の記述を使用して関数を作成しています。
なぜ彼がリストに対して cadr を実行しているのか、なぜそれがエラーではなく応答を提供するのか尋ねてもよろしいですか? データモード、つまり開始ブラケットの前に引用符を付けるべきではありません'(whatever here)
か?
また、なぜ彼は assoc を in(assoc location nodes)
と notのように使用しているのですか?(assoc 'garden *nodes*)
2番目の正しい使用方法ではありませんassoc
か? 全体像を見逃している可能性があるため、これらの重要なポイントを説明してくれる人に本当に感謝します.
どうもありがとう!
graph - CLISP でドット リスト (エッジ) からノードを抽出する
私は Lisp World の "Nil" または () です。
エッジ リスト内のすべてのノードのリストを取得したかったので、この問題を解決するコードを書きました。しかし、私はいくつかの予期しない問題に遭遇しました。
(「Land of Lisp」のコード - 第 8 章)
以下のようにすべてのノードをリストとして抽出するコードを書きました。
私のコードはそれほど悪くないと思っていましたが、結果は恥ずかしいエラーメッセージを示しました。
スタックオーバーフロー?私のコードの再帰関数が原因だと思います。どうすればこれを適切に修正できますか?
lisp - LISP: RPLACA/RPLACD/NCONC を使用して LISP でリストを反転する
だから私は関数がリストを取り、それを元に戻すようにしようとしていますが、RPLACA
/ RPLACD
/をどのように使用するのかわかりませんNONC
。基本的に reverse と同じことを行いますが、元のリストのコンス ノードを使用し、新しいコンス ノードを割り当てません。私がこれまでに持っているのは
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
使用しています。SLIME
SBCL 1.2.10