我想将调度宏包装在另一个中以保持清洁。但是,Clojure似乎对它的处理方式有所不同...也许我误会了某些东西?让我们看看简单地为#
命名的情况。
这有效:
(defmacro mkDef [x y] `~(list 'def x y))
但这不是:
(defmacro mkDispatch [x] `~(list '# x))
谢谢!!
P.S.具有足够代表的人:请创建一个语法宏标签;我希望能够更好地搜索类似的问题。
最佳答案
#dispatch宏是一个读取器宏,并且无法使用常规宏来实现读取器宏;它们由(读)而不是(eval)解释。