如果我有一個向量:如何更新Clojure中的矢量項?
[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)
如果我有一個向量:如何更新Clojure中的矢量項?
[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)
assoc
作品與載體呢!
Usage: (assoc map key val) (assoc map key val & kvs)
ASSOC [萊特]。應用於地圖時, 會返回一個與 (散列/排序)類型相同的新地圖,其中包含密鑰到val的映射關係( )。 當 應用於向量時,返回包含索引處的val的新的 向量。 注 - 索引必須是< =(計數 矢量)。
(assoc [1 2 3] 1 :a)
=> [1 :a 3]
並且還'更新in':'(更新-v中[4] - 5)'。這當然是一個愚蠢的例子,如果你只是想把五重置爲零。但是,如果零是基於五的計算結果,它可以派上用場。移動座標等。 – kotarak 2011-05-30 06:38:15
另一個注意事項:你也可以用'assoc'附加到一個向量。 '(assoc [:a:b] 2:c)'給出'[:a:b:c]'。 – kotarak 2011-05-30 06:40:08