2
我在clojure中使用宏時遇到問題。這是我想要做的。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.
我想破,例如宏僅替換文本一樣工作,例如做。爲什麼它不起作用,我應該怎樣才能使它起作用?
「我知道有防止反引號來的一種方式在命名空間中查找符號「 - '\'(+〜'foo 2)' –
哦,謝謝A. Webb。我會更新該文章的完整性。 –