我正在试验 clojure.spec,我想我会写一个宏来节省一些繁琐的打字:-)
我正在尝试这样做:
(defmacro nup
[pns pname punit]
`(s/def :~pns/name (s/and #(string? %) #(= % ~pname)))
`(s/def :~pns/unit (s/and #(string? %) #(= % ~punit))))
我已经尝试了几个版本,但我无法使命名空间替换工作。有任何想法吗?不用说,宏不是我的强项。