Próbuję utworzyć funkcję do utworzenia nowej bazy z inną strukturą jako bazą, a jako początek spróbowałem stworzyć makro, które utworzyłoby nową strukturę z tymi samymi polami, co stara. Makro mam co uważałem powinny to jest poniżej, ale to daje następujący błąd:Problem makro Clojure
java.lang.Exception: Can't use qualified name as parameter: user/p1__132
makro:
(defmacro prototype [structure obj]
`(apply struct ~structure (map #(~obj %) (keys ~obj))))
Przykład zastosowania:
(defstruct bintree :data :left :right)
(def a (struct bintree 3))
(prototype bintree a)
Żądaną mocą wyjściową w tym przypadku będzie
{:data 3 :left nil :right nil}
Jestem nowy na clojure, ale znalazłem ten link: http://osdir.com/ml/java.clojure.user/2008-03/msg00108.html – seth
czy można dodać żądane wyjście do przykładu użycia –