2012-01-28 60 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本身是多態。它添加了元素在給定的數據結構的最有效的方式。