給定一個向量:更新矢量內減少
(def vec [{:key 1, :value 10, :other "bla"}, {:key 2, :value 13, :other "bla"}, {:key 1, :value 7, :other "bla"}])
我想遍歷每個元素,並與所有:value
s到該點的總和更新:value
,所以我會:
[{:key 1, :value 10, :other "bla"}, {:key 2, :value 23, :other "bla"}, {:key 1, :value 30, :other "bla"}])
我發現this用於打印結果,但我試圖將prn
命令更改爲update-in
,assoc-in
,其代碼如下(從上面的鏈接中提取),但我工作得不太好。
(reduce (fn [total {:keys [key value]}]
(let [total (+ total value)]
(prn key total)
total))
0 vec)
我是Clojure的新手,我該如何讓它工作?
'#(更新%2:值+(:值%1))'少':value' – cfrick
由於 - 如果一個'assoc'的RHS指的是什麼* ASSOC-ING *那麼氣味可以通過更新'來代替。現在將做出修復。 –
vec後面還有一個括號,但除此之外,它工作得很好:) – isamendonca