【问题标题】:How to convert a vector to a list in Clojure [duplicate]如何在 Clojure 中将向量转换为列表 [重复]
【发布时间】:2016-03-30 03:54:30
【问题描述】:

我试过了

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,那么如何将向量转换为一个列表?

【问题讨论】:

标签: clojure


【解决方案1】:
user=> (apply list [1 2 3])
(1 2 3)
user=> (type (apply list [1 2 3]))
clojure.lang.PersistentList

list 创建一个列表,因此您只需要将其apply 加入集合即可。

【讨论】:

    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多