我已经成功地从其他名称空间导入宏。但是我不知道是否可以使用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未定义;如果我移除列表宏周围的:clj保护,则在cljs编译中未定义。有办法吗?
发布于 2015-04-28 19:39:38
是的,有一种方法可以单独构建一个文件。
(ns cljc.core
#?(:cljs (:require-macros [cljc.core :refer [list-macro]])))
#?(:clj
(defmacro list-macro [x y]
;; ...因此,下一个CLJS编译器版本之一将自动进行导入。
https://stackoverflow.com/questions/29914967
复制相似问题