【发布时间】:2014-01-13 15:46:00
【问题描述】:
我在 clojure 中使用宏时遇到问题。这就是我想要做的。
(defmacro working-example []
'(+ foo 1))
(defn working-function [foo]
(working-example))
(working-function 2) ; => 3
(defmacro broken-example [bar]
`(+ foo ~bar))
(defn broken-function [foo]
(broken-example 1)) ; => I get error here.
(broken-function 2) ; Should be 3.
我希望损坏的示例宏只替换文本,就像工作示例一样。为什么它不起作用,我应该如何让它起作用?
【问题讨论】: