我正在尝试通过“填空”动态构建 core.logic 语句。这是一个简单的例子:
(def number 42)
(def stmt `(run* [q] (== q ~number))
(eval stmt)
但是我得到一个clojure.lang.Compiler$CompilerException: java.lang.RuntimeException: No such var: user/q, compiling:(null:20:12)
.
我已经尝试了引用、取消引用和取消引用拼接的所有组合,但我无法弄清楚。我应该如何插入q
?
(而且,退后一步,建立这样的陈述是正确的方式吗?)