Sto cercando di creare una funzione per creare un nuovo basewith un'altra struttura come base, e come inizio ho tentato di creare una macro che creerebbe una nuova struttura con gli stessi campi di quella vecchia. La macro che ho che ho pensato dovrebbe fare questo è al di sotto, ma sta dando il seguente errore:Problema macro Clojure
java.lang.Exception: Can't use qualified name as parameter: user/p1__132
Macro:
(defmacro prototype [structure obj]
`(apply struct ~structure (map #(~obj %) (keys ~obj))))
Esempio di utilizzo:
(defstruct bintree :data :left :right)
(def a (struct bintree 3))
(prototype bintree a)
L'output desiderato in questo caso sarebbe
{:data 3 :left nil :right nil}
Sono nuovo di clojure ma ho trovato questo collegamento: http://osdir.com/ml/java.clojure.user/2008-03/msg00108.html – seth
potresti aggiungere l'output desiderato all'esempio di utilizzo –