У меня есть clojurescript, который успешно импортирует макросы из других пространств имен. Но мне интересно, возможна ли/должна ли быть однофайловая конструкция с clojure 1.7, чтобы можно было определить и использовать макрос. То, что я пробовал, не работает, но, возможно, я где-то упустил какую-то деталь.
(ns cljc.core)
#?(:cljs
(enable-console-print!))
#?(:clj
(defmacro list-macro [x y]
`(list ~x ~y)))
(defn foo [a]
(println (list-macro a a)))
(foo :a)
Эта форма дает сбой, поскольку list-macro
не определено при компиляции cljs; если я удалю защиту :clj вокруг макроса списка, то defmacro не будет определен в компиляции cljs. Есть ли способ?