3
私は、バインディングのベクトルとこれらのバインディングにアクセスできる関数をとるマクロを記述しようとしています。Clojureマクロで変数をバインドする方法は?
(defmacro f-with-binds [binds f]
`(let [[email protected]]
~f))
にもかかわらず、上記の作品:最も単純な形式では筆記体がfor
とlet
のようなマクロの発生しませんn
とm
として宣言されていない変数を強調しているため
(f-with-binds [n 123 m 456] (println n m)) ;; => 123 456
私はこれで満足していません。実装を改善するにはどうすればよいですか?
PS:本当のマクロは、トランスデューサを返します - バインディングは、トランスデューサの状態や機能は、トランスデューサのステップ関数@superkonduktrコメントから取ら
「let」と「for」は、筆記体の特殊なケースとして扱われることはありますか? Cursiveは閉鎖されたソースなので、言うことは難しいです。ところで、 –
あなたは '[〜@ binds]'をする必要はありません。 '(let〜binds〜f)'を使うことができます。 – leetwinski
@leetwinski lol、ありがとう、 –