我正在学习clojure,我正在尝试使用shadow-cljs在clojure REPL中进行实验。我认为 eval 是clojure.core
的一部分,但使用它
(eval (list + 1 2))
产生Error: cljs.core/*eval* not bound
我也试过这个,但得到了同样的错误
(require `clojure.core)
(clojure.core/eval (list + 1 2))
这是为什么呢?
您可能正在使用ClojureScript REPLeval
其中仅作为需要额外设置的自托管构建的一部分。clojure.core
会自动别名化为编译器的一部分cljs.core
,这就是您收到cljs.core/*eval*
错误的原因。
如果你打算做实际的Clojure REPL工作,你应该使用
shadow-cljs clj-repl
这将给你一个纯粹的Clojure REPL。