Estoy intentando crear una macro poco Clojure que def
Cadena SA con un toque tipo:Clojure defmacro pierde metadatos
(defmacro def-string [name value]
`(def ^String ~name ~value))
(def-string db-host-option "db-host")
Cuando macroexpand
ella, se pierde la pista Tipo:
(macroexpand '(def-string db-host-option "db-host"))
;=> (def db-host-option "db-host")
No importa la sabiduría del tipo que insinúa esto.
¿Por qué la macro pierde los metadatos? ¿Cómo escribo esta macro, o cualquiera que incluya metadatos?
Ahh! Por supuesto, las macros de lector se evalúan antes de defmacros. Gracias. – Ralph