在Clojure中,我如何访问和返回此集合的修改版本

时间:2018-11-19 11:15:30

标签: clojure maps iteration

如果我有一个像这样的集合({:A 1 :B 2 :Goal 5} {A:2 :B 4 :Goal 2}),有一种方法可以遍历它,并使用assoc将所有:Goal更改为其他值,例如0? 因此,基本上给定上面的集合和键:Goal,该函数将返回({:A 1 :B 2 :Goal 0} {A:2 :B 4 :Goal 0})

感谢您的帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

(let [A '({:A 1 :B 2 :Goal 5} {:A 2 :B 4 :Goal 2})]
    (map #(assoc % :Goal 0) A))

或者,如果您想使用幽灵:

(let [A '({:A 1 :B 2 :Goal 5} {:A 2 :B 4 :Goal 2})]
    (setval [ALL :Goal] 0 A))