我已成功地从其他命名空间中导入宏,但我想知道在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)
当编译cljs时,此表单会由于未定义list-macro
而失败;如果我删除围绕list-macro
的:clj守卫,则在cljs编译中未定义defmacro。有办法吗?