访问ClojureScript

时间:2019-05-21 12:42:25

标签: macros clojurescript resolve

假设以下代码

(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代码执行严格分开。 但是,有没有办法实现以上目标?

0 个答案:

没有答案