我从Clojure开始并尝试绑定(或true)为(true)。我收到以下错误:
CompilerException:java.lang.ClassCastException:java.lang.Boolean不能强制转换为clojure.lang.IFn,编译:(myproject \ core.clj:8:26)
以下是代码:
(declare ^:dynamic or)
(binding [or true] (true))
如果我这样做
(binding [or true] (true))
我明白了:
CompilerException java.lang.IllegalStateException:无法动态绑定非动态var:clojure.core /或,编译:(myproject \ core.clj:5:30)
答案 0 :(得分:2)
true
不是一个功能。它不应该在括号中。
(declare ^:dynamic or)
(binding [or true] true)
请注意,or
已引用clojure.core/or
。您可以改为命名var or-
。