問題タブ [guile]
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.
macros - この Lisp 再帰マクロが機能しないのはなぜですか?
私はマクロ let-- (ラムダを使用する let* のようなもの) を Guile に持っています:
外部関数を使用してコード生成を行うと正常に動作しますが、以下のコード ( with は単なるマクロ) は動作しません:
なぜ?
scheme - Guileで「#:」とはどういう意味ですか?
私は通常 MIT/GNU スキームを使用しますが、github でいくつかの Guile コードを見つけました ( guile-2d )。
最初に MIT/GNU スキーム リファレンスを確認したところ、追加の表記法が見つかりましたが、それについては何もありませんでし#:た。
その後、Guile のマニュアルを一瞥すると、オプションの引数を指定しているように見えるいくつかの記述 ( Profile Commands、Debugging Commands ) を見つけました。Python でこれに似たもの:
その意味を確実に知っている人はいますか?
scheme - read-line in let は次の行を読みません
上記のコードは、2 行目を l に読み込むことができません。代わりに、同じ値を2回読み取るだけです:-
line1 に続いて line2 が入力として与えられると、 line2 の代わりに line1 が出力として表示されます。ここで何が起きてるの?
mit-scheme - プロシージャ内で定義された変数は保持されますか?
手順を書きました(do-test)。テストは変数に何らかの影響を与える可能性があるため、手順で実行されないことを期待して内部envで定義したため、実行するたびに新しい環境で作業できます。驚いたことに、私のテスト手順は実際には以前の. 次のコードを見つけてください。envdo-testenvenv
mit-scheme / guile / codepad.org を使用してこのコードを実行しようとしましたが、(do-test)2 回実行すると異なる結果が得られました。
しかし、行(define env '(1))をに変更する(define env (list 1))と、期待どおりの結果が得られます。( codepad.org で変更前後の私のコードを見つけることができます)
私の知る限りでは、2 番目が call procedure であることを除いて、同じである必要があり'(1)ます。(list 1)list
なぜこれが起こるのか、プログラムが以前の値を再利用しないようにするにはどうすればよいでしょうか?
scheme - 手続きをn回呼び出すscheme関数
スキームには、関数を n 回呼び出す関数がありますか。関数には引数がないため、map/for-each は必要ありません。これに沿った何か:-