Я пытаюсь динамически создать оператор 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
?
(И, сделав шаг назад, правильно ли строить такие утверждения?)