【发布时间】:2011-12-06 22:53:16
【问题描述】:
我正在尝试创建一个小的 Clojure 宏,它 defs 是一个带有类型提示的字符串:
(defmacro def-string [name value]
`(def ^String ~name ~value))
(def-string db-host-option "db-host")
当我macroexpand它时,类型提示丢失:
(macroexpand '(def-string db-host-option "db-host"))
;=> (def db-host-option "db-host")
别介意打字暗示这一点的智慧。
为什么宏会丢失元数据?如何编写此宏或任何包含元数据的宏?
【问题讨论】:
标签: macros clojure type-hinting