调试Clojure函数的推荐方法?

yay*_*wei 7 debugging clojure

我当前的方法:如果有一个我知道的函数有一个bug,我将它的一些部分复制到REPL中并评估输出是否符合我的预期.要设置它,我必须将函数的参数作为虚拟输入.不是非常耗时,但我知道有一种更有效的方式.

有什么建议?

Joh*_*den 4

这个宏有帮助吗?它将 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