私はclojureマクロを「取得」しare
、既存のare
マクロに関してマクロの微調整バージョンを書き込もうとしています。
私が欲しい微調整は、[argv expr args]
代わりに署名をすることです。[argv expr & args]
(defmacro are2 [argv expr args] `(clojure.test/are ~arg ~expr ~@args))
引用符で囲まれていないリストを期待する場合を除いて、どの種類の作品ですか。
(are2 [input] (= 0 input) (1 2 3))
引用符で囲まれたリストを期待したい場合:
(are2 [input] (= 0 input) '(1 2 3))
しかし、その結果は次のようになります。
Unable to resolve symbol: quote in this context.
やってみたら
(are2 [input] (= 0 input) (list 1 2 3))
代わりに、list
それ自体がテストケースとして処理されます。
私が理解していないこと/マクロの見積もりをどのように乗り越えることができますか