2012-01-28 23 views
1

我很好奇,为什么第一个参数应用(并减少)的影响为显示在下面的代码片段中的函数的行为。为什么Clojure的不同从列表应用治疗载体?

user=> (apply conj '() [1 2 3]) 
(3 2 1) 
user=> (apply conj [] [1 2 3]) 
[1 2 3] 

user=> (apply conj '() '(1 2 3)) 
(3 2 1) 
user=> (apply conj [] '(1 2 3)) 
[1 2 3] 

回答

5

这不是applyreduce修改的conj行为。 conj本身是多态。它添加了元素在给定的数据结构的最有效的方式。