【发布时间】:2019-01-12 15:02:25
【问题描述】:
我似乎无法在 clojurescript REPL 中使用宏。
我在macros.clj中定义宏:
(ns clojurescripting.macros)
(defmacro increment [x]
`(+ 1 ~x))
那我用在core.cljs
(ns ^:figwheel-hooks clojurescripting.core
(:require-macros [clojurescripting.macros]))
(defn main []
(js/alert (clojurescripting.macros/increment 0)))
(main)
代码实际上使用了increment 宏,因为它给出了正确输出的警报。
我使用clojure -A:fig:build 运行 repl。
当我尝试在 REPL 中使用宏时,我无法访问该宏 - 没有 clojurescripting.core/increment,我也无法访问那里的 clojurescripting.macros。
另一个问题: 这在任何 REPL 中都可能吗?一般来说,这似乎是可能的,因为 Learning Clojurescript 一书提供了几乎相同的示例,并继续在 REPL 中对其进行评估。
附言
这不是 this question 的副本 - 它很可能已经过时,并且接受的答案是神秘的(我什至不确定 bREPL 是什么,以及 figwheel 是否使用它)。
【问题讨论】:
标签: clojurescript