Sto cercando di creare un po 'di Clojure macro che def
sa String con un tipo di suggerimento:Clojure defmacro perde metadati
(defmacro def-string [name value]
`(def ^String ~name ~value))
(def-string db-host-option "db-host")
Quando ho macroexpand
esso, il tipo di suggerimento si perde:
(macroexpand '(def-string db-host-option "db-host"))
;=> (def db-host-option "db-host")
Non importa la saggezza del tipo che suggerisce questo.
Perché la macro perde i metadati? Come scrivo questa macro o qualsiasi che includa i metadati?
Ahh! Ovviamente, le macro dei lettori vengono valutate prima di defmacros. Grazie. – Ralph