为什么Clojure';应用与列表不同的处理向量?

为什么Clojure';应用与列表不同的处理向量?,clojure,reduce,apply,Clojure,Reduce,Apply,我很好奇为什么要应用的第一个参数(以及reduce)会影响函数的行为,如下面的代码段所示 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] 你的问题是关于conj的行为,而不是apply的行为 Conj

我很好奇为什么要应用的第一个参数(以及reduce)会影响函数的行为,如下面的代码段所示

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]

你的问题是关于conj的行为,而不是apply的行为

Conj将项目添加到列表的前面和向量的末尾


请参阅:

您的问题是关于conj的行为,而不是apply的行为

Conj将项目添加到列表的前面和向量的末尾


请参阅:

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

它不是
apply
reduce
修改
conj
的行为
conj本身是多态的。它以给定数据结构中最有效的方式添加元素