問題タブ [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 に答える
4863 参照

lisp - Lisp の「連想リスト」と Java の Map のようなキーと値のマッピングとの関係は何ですか?

Land of Lisp (これは、私が今まで読んだ中で最高の技術書の 1 つです) を読んでいて、「連想リスト」に出くわしました。

Lisp の連想リストは、Java のマップ (キーと値のバインディング) と同じ概念ですか?

キーの場合living-room、どのようにして複数の値を持つことができますか? 値をリストで囲むのはなぜですか?

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

functional-programming - 関数を複数の行に分割する

素晴らしい本「LandofLisp」の例のソースコードを次に示します。

私はLispの本能を持っていないので、メソッドを複数の行に分割し(命令型として)、それを機能的なスタイルに変形させようとすると便利だと思います。

make-edge-list関数を複数の行に分割するのを手伝っていただけませんか。

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

lisp - Lispの土地の例の冗長性?

Land of Lispの良いところをたくさん読んだので、そこを調べて何が見えるか見てみようと思いました。

(コメントは私のものです)
(参考までに-メソッドのシグネチャはです(list-of-symbols bool-whether-to-caps bool-whether-to-treat-literally)が、作成者はこれらを短縮しました(lst caps lit)。)

しかしとにかく、ここに質問があります:
これは(cond... (lit ...) ((or caps lit) ...))それにあります。私の理解では、これはif(lit){ ... } else if(caps || lit){...}Cスタイルの構文に変換されます。その場合、orステートメントは冗長ではありませんか?(or caps lit)キャップがの場合に条件が呼び出される条件はありnilますか?

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

f# - like、monadsなどを介して通過する明示的な状態を排除する

私はF#のLand of Lispという本を読んでいます(ええ、奇妙です、私は知っています)。彼らの最初の例のテキストアドベンチャーでは、グローバル変数の突然変異を利用しているので、それを避けたいと思います。私のモナドフーは弱いので、今私はこのように醜い状態通過をしています:

明示的な状態を除外して、より美しくするにはどうすればよいですか?(役立つ場合は、Stateモナドタイプにアクセスできると仮定します。F#にサンプルコードがあることを知っています。)

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

clojure - コードは REPL で実行されるが、ファイルに保存されている場合は実行されない

テキスト ベースの Clojure ゲームを作成しようとしています (Land of Lisp に触発されました)。

コードは REPL で実行されていますが、コードをファイルに保存して実行しようとすると、次のようになります。

私が得た:

スレッド「メイン」の例外 java.lang.IllegalArgumentException: 間違った数の引数 (1) が渡されました: user$describe-location (wizard-game.clj: 0)

私が間違っていることは何ですか?
ファイルは次のとおりです: http://dl.dropbox.com/u/3630641/wizard-game.clj

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

clojure - Clojure で Land of Lisp のウィザード ゲームを書き換える

"Land of Lisp" http://landoflisp.com/wizards_game.lispからウィザード ゲームを書き直そうとしています。

しようとすると:

私はこの例外を得ました:

スレッド「メイン」の例外 java.lang.RuntimeException: java.lang.IllegalArgumentException: Do not know how to create ISeq from: clojure.lang.Symbol (wizard-game.clj:0)

私はまだ Lispy の目を持っていません。何が間違っているのでしょうか?

0 投票する
6 に答える
2332 参照

lisp - Lisp括弧の質問

このコードは本からのものです:「LandOfLisp」最初のバージョンは本からのものです。読んでみると、2行目の「at-loc-p」の直前に「(」、3行目のlocの直後に「)」という括弧があると思いました。

しかし、これをテストすると、

出てきた:

AT-LOC-Pの必須引数がラムダリスト(CCL :: FUNCNAME CCL :: LAMBDA-LIST&BODY CCL :: LABELS-FUNCTION-BODY)と一致しません。
[タイプCCL::SIMPLE-PROGRAM-ERRORの条件]

私は静かに理解していません。助けが必要。ありがとうございました。

0 投票する
3 に答える
2265 参照

lisp - Clipsp REPLエラー出力:エラーが発生したファイルの行番号を見つける方法は?

CLisp を使用して、Land of Lisp で作業し、Slimv を使用して Vim でコードを記述し、Alt キーを押しながら別のターミナル ウィンドウに移動し、(load 'file.lisp) を使用してファイルを REPL にロードし、次にプログラムを実行しています。 REPL。

REPL でエラーが発生した場合、file.lisp のどの行でエラーが発生したかを確認する方法はありますか? REPL エラー出力に明示的に記載されている行番号が表示されません。他の方法はありますか?

私はこの同様の質問を見つけましたが、唯一の答えは、sbcl、allegroなどのClisp以外のものを使用することを示しています:

clisp のエラー メッセージを改善するにはどうすればよいですか?

ありがとう!

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

lisp - Lisp でのメモリ割り当て

Lisp 環境では、2 つの項目を接続するために 1 つのコンス セルのみを割り当てる必要があります。

上は Lisp の本 "Land of Lisp" からのものです。このペアが 1 つのコンス セルにのみ配置されている理由がわかりません。このデータのメモリはどのように見えますか?

0 投票する
3 に答える
3185 参照

macros - clojureでのマクロ引数の評価

私は次のマクロをlispの土地からclojureに変換しようとしています:

しかし、私はもう1つのレベルの評価を必要とするattsで立ち往生し続けています。たとえば、次のようにt#を評価する必要があります。

それは次のようなものを生成するので:

属性を評価したい場所。上記で「(evalt#)」を使用すると、次のような問題が発生します。

助言がありますか?

Clojureで評価のレベルが1つ下がったように見えるのはなぜですか?

サポート機能の定義:

(何らかの理由で、本と同じようにペア関数を実行しなかったため、nilsが正しく処理されません)