首页 > 解决方案 > 访问 ClojureScript 中另一个宏中的宏中定义的值

问题描述

假设以下代码

(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在我们的例子中,在编译时评估是强制性的。

我们设法在 Clojure 中使用 实现了这一点resolve,这在 ClojureScript 中不起作用。我们知道,尤其是在 ClojureScript 中,宏评估与 ClojureScript 代码执行严格分开。但是,有没有办法实现上述目标?

标签: macrosclojurescriptresolve

解决方案


推荐阅读