首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cljc单文件宏定义可以使用clojurescript吗?

cljc单文件宏定义可以使用clojurescript吗?
EN

Stack Overflow用户
提问于 2015-04-28 09:04:53
回答 1查看 3.2K关注 0票数 10

我已经成功地从其他名称空间导入宏。但是我不知道是否可以使用clojure 1.7来构造单个文件,这样就可以定义和使用宏了。我尝试过的是行不通的,但也许我错过了某个地方的细节。

代码语言:javascript
复制
(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编译中未定义。有办法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-28 19:39:38

是的,有一种方法可以单独构建一个文件。

代码语言:javascript
复制
(ns cljc.core
  #?(:cljs (:require-macros [cljc.core :refer [list-macro]])))

#?(:clj
(defmacro list-macro [x y]
;; ...

因此,下一个CLJS编译器版本之一将自动进行导入。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29914967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档