如何在Clojure中将向量转换为列表

如何在Clojure中将向量转换为列表,clojure,Clojure,我试过这个 koan-engine.runner=> (map identity [1 2 3]) (1 2 3) koan-engine.runner=> (type (map identity [1 2 3])) clojure.lang.LazySeq koan-engine.runner=> (type '(1 2 3)) clojure.lang.PersistentList 但是它看起来就像一个列表,实际上它是一个LazySeq,那么如何将向量转换成一个列表呢 u

我试过这个

koan-engine.runner=> (map identity [1 2 3])
(1 2 3)
koan-engine.runner=> (type (map identity [1 2 3]))
clojure.lang.LazySeq
koan-engine.runner=> (type '(1 2 3))
clojure.lang.PersistentList
但是它看起来就像一个列表,实际上它是一个LazySeq,那么如何将向量转换成一个列表呢

user=> (apply list [1 2 3])
(1 2 3)
user=> (type (apply list [1 2 3]))
clojure.lang.PersistentList
list
创建一个列表,因此您只需将其应用于集合。

另一个选项是:


另请参见。

请参阅并更好地了解Clojure收藏类型。@PiotrekBzdyl谢谢。最大的问题是:你为什么要这样做?您希望在该列表上执行哪些操作,而在向量上无法执行这些操作?您可以像这样调用向量上的seq(seq[1 2 3]),它返回(1 2 3)
user=> (into '() [1 2 3])
(3 2 1)
user=> (type (into '() [1 2 3]))
clojure.lang.PersistentList
user=> (into '() (reverse [1 2 3]))
(1 2 3)
user=> (type (into '() (reverse [1 2 3])))
clojure.lang.PersistentList