我写了一个宏来创建记录
(defmacro def-entity [name & value]
`(do
(defrecord ~name (vector ~@value))
))
我创建了一个实体
(def-entity p a b)
但是当我尝试创建一个具体实例(def something (p. "a" "b"))时,我收到这条消息 java.lang.IllegalArgumentException: No matching ctor found for class user.p (repl-1:40)。所以我必须提供3个参数,像这样(def某人(p。“a”“b”“x”))它把这样的值
(-> someone :a)
"b"
(-> neko :p)
nil
我似乎不明白发生了什么?