Меня немного смущает то, как доступ к ключевым словам, кажется, ведет себя в Clojure, когда они оцениваются во время раскрытия макроса.
Следующие работы, как я ожидаю:
(def m {:a 1})
(:a m)
=> 1
Однако тот же доступ к ключевому слову не работает в макросе:
(def m {:a 1})
(defmacro get-a [x] (:a x))
(get-a m)
=> nil
Есть идеи, что здесь происходит?