(into '(1 2 3) ["a-6ren">
gpt4 book ai didi

data-structures - 在 Clojure 中进入列表与进入向量

转载 作者:行者123 更新时间:2023-12-04 06:58:53 24 4
gpt4 key购买 nike

你能解释一下 Clojure 中的这种行为吗?

user=> (into [1 2 3] ["a" "b"])
[1 2 3 "a" "b"]

但是

user=> (into '(1 2 3) ["a" "b"])
("b" "a" 1 2 3)

into with vector 附加项目是可以理解的,但为什么使用 into with list 首先恢复项目顺序然后将其添加到列表中?

最佳答案

into 使用 conj 将项目添加到源集合中。 conj 将项目附加到列表的前面和向量的末尾。 Clojure 列表是不可变的单链表,因此添加到列表的末尾将是一个 O(n) 操作。前面的插入是一个常量时间操作。

关于data-structures - 在 Clojure 中进入列表与进入向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32936052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com