gpt4 book ai didi

clojure - cljc单文件宏定义可以与clojurescript一起使用吗?

转载 作者:行者123 更新时间:2023-12-04 03:37:05 25 4
gpt4 key购买 nike

我有clojurescript成功从其他 namespace 导入宏。但是我想知道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防护,则defmacro在cljs编译中未定义。有办法吗?

最佳答案

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

(ns cljc.core
#?(:cljs (:require-macros [cljc.core :refer [list-macro]])))

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

假定下一个CLJS编译器版本之一将自动执行导入。

关于clojure - cljc单文件宏定义可以与clojurescript一起使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29914967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com