web-dev-qa-db-ja.com

Clojureのベクトルのn番目の要素を置き換える簡単な方法?

たとえば、ベクター[1, 2, 3]があり、ベクターが[1, 5, 3]になるように2番目の要素を更新したいとします。他の言語では、私はarray[1] = 5のようなことをするだけですが、Clojureでこれを簡単に行うことができるものは何も知りません。

これを達成する方法、または別のデータ構造を使用する必要があるかどうかについての考え

48
wrongusername

assocはそのために問題なく動作します。新しい値を配置する場所のインデックスを取り、新しく作成されたベクトルを返します。

Clojure> (assoc [1 2 3] 1 5)
[1 5 3]
72
yves Baumes