用于Clojure(脚本)DSL的自定义`def`宏

时间:2017-01-04 14:47:46

标签: clojure clojurescript

我想编写一个包含defx的DSL,它包装了本地def并调用构造函数:

(defmacro defx [name & args]
  `(def ~name (ctor ~@args)))

当我引用通过调用defx定义的值(例如(defx somex 1 2 3) (println somex))时,ClojureScript会向WARNING: Use of undeclared Var somex投诉。它在运行时工作正常,所以如何摆脱警告?

更新:我要求自1.9.198以来在cljs中支持:refer [defx]的宏,但显然从1.9.293开始,仍然存在一些缺点。要求使用明确的:refer-macros修复警告。

0 个答案:

没有答案