我試圖創建一個函數來創建一個新的基地與另一個結構作爲基地,並作爲一個開始,我試圖做一個宏,將創建一個新的結構與舊的相同的領域。我認爲應該做到這一點的宏我有低於,但它給了以下錯誤:Clojure宏問題
java.lang.Exception: Can't use qualified name as parameter: user/p1__132
宏:
(defstruct bintree :data :left :right)
(def a (struct bintree 3))
(prototype bintree a)
:
(defmacro prototype [structure obj]
`(apply struct ~structure (map #(~obj %) (keys ~obj))))
使用示例在這種情況下期望的輸出將是
{:data 3 :left nil :right nil}
我是clojure的新手,但是我發現這個鏈接:http://osdir.com/ml/java.clojure.user/2008-03/msg00108.html – seth 2009-07-06 23:16:03