【发布时间】:2011-06-23 17:13:22
【问题描述】:
我见过以下代码记录宏的一些变体:
(defmacro log
"for debugging, output code and code->val to stdout, returns val"
[code]
`(let [c# ~code]
(prn '~code)
(clojure.pprint/pprint c#)
c#))
但是,我还没有看到将所有宏或函数形式包装在代码体中的递归版本。有没有人有很好的工作实施?
编辑:
为了澄清,以下面的代码为例:
(map #(+ % 10) (range 5))
通过将其包装在递归日志宏中:
(r-log (map #(+ % 10) (range 5)))
它的宏观扩展应该是:
(log (map #(log (+ % 10)) (log (range 5))))
【问题讨论】:
-
你能举个例子说明你在找什么吗?我几乎可以肯定不知道答案,但我不清楚您想要示例代码没有提供什么......