Próbuję stworzyć małą Clojure makro, które def
sa String z nutą typu:Clojure defmacro traci metadanych
(defmacro def-string [name value]
`(def ^String ~name ~value))
(def-string db-host-option "db-host")
Kiedy macroexpand
go wskazówkę typ jest przegrane:
(macroexpand '(def-string db-host-option "db-host"))
;=> (def db-host-option "db-host")
Nie zwracaj uwagi na mądrość typu, która to sugeruje.
Dlaczego makro traci metadane? Jak napisać to makro lub które zawiera metadane?
Ahh! Oczywiście makra czytników są oceniane przed defmacros. Dzięki. – Ralph