conj
的完整词义是 conjoin ,
表示『相连接』的意思,
它用于将元素和 collection 拼接起来。
需要注意的是,
根据 coll
的类型,
组合会发生在 coll
的不同地方,
也即是, 元素 x
可能会被加入到 coll
的最左边,也可能会被加入到最右边。
当 coll
等于 nil
,
也即是,执行 (conj nil item)
时,
结果为 (item)
。
; coll 为 nil
user=> (conj nil 1)
(1)
; 向量的组合在尾部进行
user=> (conj [0 1 2] 3)
[0 1 2 3]
; 列表的组合在头部进行
user=> (conj (list 0 1 2) 3)
(3 0 1 2)
; 处理多个元素的 conj
; 注意向量和列表的结果之间的不同
user=> (conj [0 1 2] 3 4 5)
[0 1 2 3 4 5]
user=> (conj (list 0 1 2) 3 4 5)
(5 4 3 0 1 2)