假设以下代码
(defmacro sdef [sname]
`(def ~sname 3))
(defmacro sinc [sname]
(inc ... we want to access sname's value here...))
在ClojureScript中,我们将像这样使用它
(sdef sfoo)
(sinc sfoo) ; => 4
在我们的情况下,必须在编译时评估sinc
。
我们设法使用resolve
在Clojure中实现了这一点,而在ClojureScript中则无法使用。我们知道,尤其是在ClojureScript中,宏评估与ClojureScript代码执行严格分开。
但是,有没有办法实现以上目标?