私は記録を持っています(defrecord Rec [id])
私はそれを次のように扱います
(def my ( Rec. 2 ))
(println (:id my))
ここで、レコード定義をマクロに置き換えたいと思います。ただ書くことができるように
(r 2)
(println (:id my))
マクロを書いた
(defmacro r [id]
(list 'def 'my (symbol "(") 'Rec. id (symbol ")")))
macroexpandで確認しました
(macroexpand-1 '(r 2)) => (def my ( Rec. 2 ))
しかし、私は乗りRuntimeException: Too many arguments to def
ます(r 2)
。