我用我的一些宏的gensym
功能,则使得它很难测试:是否有可用于比较模式宏表单的工具/函数?
所以一些宏观的扩张可能是:
'(let [G__10458 (js-obj)]
(aset G__10458 "a" (fn [] (? G__10458.val)))
(aset G__10458 "val" 3) G__10458)
我要的是测试它匹配了这种类型的彭定康:
'(let [%1 (js-obj)]
(aset %1 "a" (fn [] (? %1.val)))
(aset %1 "val" 3) %1)
有什么东西在clojure.core.match
库或做这个另一种模式匹配库?
首先,写出您的宏没有gensym。继续更新和测试宏,直到它做你想做的事。最后,添加gensym。 – WolfeFan 2013-05-02 14:22:02
我知道我可以做到这一点,但这不是我想要的 – zcaudate 2013-05-02 21:00:24
gensym是一种工具,当您的宏已经过了测试阶段并且您将其投入到实际工作中时可以使用它。 gensym存在的全部原因是为了防止在运行时命名冲突,当您仍在构建和测试宏时,这不是主要关心的问题。 – WolfeFan 2013-05-03 02:28:32