gpt4 book ai didi

clojure - conj 的奇怪行为

转载 作者:行者123 更新时间:2023-12-01 09:57:29 25 4
gpt4 key购买 nike

我正在尝试一些 Clojure,但现在对“conj”的行为感到困惑。请参阅以下示例:

user=> (conj [1 2 3] 4)
[1 2 3 4]

以上是预期的。但是现在,如果我执行以下操作:

user=> (conj (reverse [1 2 3]) 4)
(4 3 2 1)

它返回 (4 3 2 1)。但我想它应该已经返回 (3 2 1 4)。那么,我在这里缺少什么?

最佳答案

reverse 返回一个列表。

(reverse [1 2 3])
=> (3 2 1)

conj 具有尽可能便宜地向集合添加内容的行为。对于矢量,它会追加。对于列表,它是预先挂起的。

例如:

(conj '(1 2 3) 4)
=> (4 1 2 3)

关于clojure - conj 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22852929/

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