我试过这个
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,那么如何将矢量转换为列表呢?
答案 0 :(得分:4)
user=> (apply list [1 2 3])
(1 2 3)
user=> (type (apply list [1 2 3]))
clojure.lang.PersistentList
list
会创建一个列表,因此您只需apply
将其添加到集合中。
答案 1 :(得分:2)
另一个选项是into:
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
另见Creating a List from an Existing Data Structure - Clojure Cookbook。