如何在Clojure中更新矢量中的项目?

时间:2011-05-29 14:56:11

标签: clojure

如果我有一个Vector:

[1 2 3 4 5 6 7 8 9]

:我想用0替换5来给出:

[1 2 3 4 0 6 7 8 9]

当我只知道索引为4时,我怎么能这样做?

类似的东西:

 (replace-in-vec [1 2 3 4 5 6 7 8 9] 4 0)

2 个答案:

答案 0 :(得分:34)

assoc也适用于矢量!

 Usage: (assoc map key val)
        (assoc map key val & kvs)
     

ASSOC [莱特]。应用于地图时   返回相同的新地图   (散列/排序)类型,包含   密钥到val(s)的映射。 :当   应用于矢量,返回一个新的   在索引处包含val的向量。   注意 - 索引必须是< =(计数   矢量)。

(assoc [1 2 3] 1 :a)
 => [1 :a 3]

答案 1 :(得分:5)