【发布时间】:2015-11-27 01:44:03
【问题描述】:
最后,如果你运行以下代码:
(conj (1 2 3) 4)
它会出错并说:
ClassCastException java.lang.Long cannot be cast to clojure.lang.IFn
但是,如果你在列表前加一个撇号,它会正常运行
(conj '(1 2 3) 4)
我的问题是,这个撇号到底有什么作用,为什么这个列表实际上需要它?
我注意到当您使用矢量时不会发生这种情况
(conj [1 2 3] 4)
事实上,即使您使用撇号 (conj '[1 2 3] ),它仍然可以正常工作并返回相同的结果。
撇号到底有什么作用,为什么列表需要它,而向量不需要? (抱歉,如果这是一个初学者/愚蠢的问题,我仍在学习。非常感谢您提供详尽的答案)
【问题讨论】:
-
试试
'[1 2 x]和x一个变量,会有区别
标签: clojure