【发布时间】:2014-01-23 17:26:39
【问题描述】:
实际上我正在尝试完全理解 clojure,尤其是符号
(def a 1)
(type a)
;;=>java.lang.Long
(type 'a)
;;=>clojure.lang.Symbol
我知道type 是一个函数,所以它的参数首先被评估,所以我完全理解为什么上面的代码会这样工作。在流动的代码中,我决定使用宏来延迟评估
(defmacro m-type [x] (type x))
(m-type a)
;;==>clojure.lang.Symbol
我对此很好,但我无法理解的是:
(m-type 'a)
;;=>clojure.lang.Cons
为什么 'a 的类型是缺点
【问题讨论】:
-
投票关闭为“太宽泛”的用户你能证明你的决定是正确的吗?这有一个具体而简单的答案
-
也许有人只看了标题?
标签: macros clojure symbols cons