【问题标题】:Clojure -- is the dispatch macro special?Clojure——调度宏是特殊的吗?
【发布时间】:2011-06-20 03:13:44
【问题描述】:

我想将调度宏包装在另一个中以保持清洁。但是,Clojure 似乎以不同的方式对待它......或者我可能误解了什么?我们来看一下简单给#取别名的情况。

这行得通:

(defmacro mkDef [x y] `~(list 'def x y))

但这不是:

(defmacro mkDispatch [x] `~(list '# x))

谢谢!!

附:有足够代表的人:请创建一个语法宏标签;我希望能够更好地搜索类似的问题。

【问题讨论】:

    标签: macros clojure


    【解决方案1】:

    #dispatch 宏是 reader 宏,reader 宏不能使用常规宏实现;它们由 (read) 而不是 (eval) 解释。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-08
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      相关资源
      最近更新 更多