【发布时间】:2009-07-06 23:04:48
【问题描述】:
我正在尝试创建一个函数来创建一个以另一个结构为基础的新基础,作为开始,我尝试创建一个宏来创建一个具有与旧结构相同字段的新结构。我认为应该执行此操作的宏如下,但它给出了以下错误:
java.lang.Exception: Can't use qualified name as parameter: user/p1__132
宏:
(defmacro prototype [structure obj]
`(apply struct ~structure (map #(~obj %) (keys ~obj))))
使用示例:
(defstruct bintree :data :left :right)
(def a (struct bintree 3))
(prototype bintree a)
在这种情况下所需的输出是
{:data 3 :left nil :right nil}
【问题讨论】:
-
我是 clojure 的新手,但我找到了这个链接:osdir.com/ml/java.clojure.user/2008-03/msg00108.html
-
能否将所需的输出添加到使用示例中
标签: clojure