При нормальном РЕПЛ это работает:Cljs макросы полностью требующие квалифицированных символы
(defmacro evaluate
[to-eval]
(eval to-eval))
(evaluate +) ;=> #function[clojure.core/+]
Однако в clojurescript при использовании отдельных файлов, как так:
file one: macro.clj
(ns space.macro)
(defmacro evaluate
[to-eval]
(eval to-eval))
file two: core.cljs
(ns space.core
(:require-macros [space.macro :refer [evaluate]))
(evaluate clojure.core/+) ;=> No error
(evaluate +) ;=> Unable to resolve symbol: + in this context
Мы получаем некоторые ошибки. Почему возникает вопрос, почему? И как вы это исправите?
Если вы выбираете пример без 'eval' в этот вопрос будет более информативным. Если это вопрос об использовании макроса для оценки в ClojureScrips, это тоже хорошо. Это просто поможет в ответе, если мы знаем между ними. –
Это вопрос о том, как использовать макросы для вычисления в ClojureScrips. –