Clojure новичок, пробующий макросы.Я пишу следующий макрос
(defmacro f [exp]
(let [[a op b] exp]
(list op a b)))
(f (1 + 2))
, который работает как задумано.
Однако
Я попытался заменить возвращаемое значение с (list op a b)
на '(op a b)
, и я * не смог разрешить символ op
в этом контексте.Я подумал, что ошибка вызвана тем, что list
сначала оценивает свои аргументы, поэтому я попытался с '(~op a b)
, но все равно получаю ту же ошибку.Что я не так понимаю?