【发布时间】:2016-12-01 17:59:27
【问题描述】:
我正在尝试使用 clojure.spec,我想我会编写一个宏来节省一些繁琐的输入:-)
我正在尝试这样做:
(defmacro nup
[pns pname punit]
`(s/def :~pns/name (s/and #(string? %) #(= % ~pname)))
`(s/def :~pns/unit (s/and #(string? %) #(= % ~punit))))
我已经尝试了几个版本,但我无法使命名空间替换工作。有任何想法吗? 不用说,宏不是我的强项。
【问题讨论】:
-
您不需要任何宏,只需在函数中执行
s/def。
标签: clojure macros namespaces clojure.spec