我当前的方法:如果有一个我知道的函数有一个bug,我将它的一些部分复制到REPL中并评估输出是否符合我的预期.要设置它,我必须将函数的参数作为虚拟输入.不是非常耗时,但我知道有一种更有效的方式.
有什么建议?
这个宏有帮助吗?它将 let 转换为一系列 def,以便您可以计算子表达式:
(defmacro def-let
"like let, but binds the expressions globally."
[bindings & more]
(let [let-expr (macroexpand `(let ~bindings))
names-values (partition 2 (second let-expr))
defs (map #(cons 'def %) names-values)]
(concat (list 'do) defs more)))
Run Code Online (Sandbox Code Playgroud)
我在这里写了一个解释: http://www.learningclojure.com/2010/09/astonishing-macro-of-narayan-singhal.html
| 归档时间: |
|
| 查看次数: |
867 次 |
| 最近记录: |