鉴于:
(def my-vec [{:a "foo" :b 10} {:a "bar" :b 13} {:a "baz" :b 7}])
Run Code Online (Sandbox Code Playgroud)
如何迭代每个元素来打印该元素:a和所有的总和:b到那个点?那是:
"foo"10
"bar"23
"baz"30
我正在尝试这样的事情无济于事:
; Does not work!
(map #(prn (:a %2) %1) (iterate #(+ (:b %2) %1) 0)) my-vec)
Run Code Online (Sandbox Code Playgroud)
这不起作用,因为"iterate"lazy-seq不能引用my-vec中的当前元素(据我所知).
TIA!肖恩
user> (reduce (fn [total {:keys [a b]}]
(let [total (+ total b)]
(prn a total)
total))
0 my-vec)
"foo" 10
"bar" 23
"baz" 30
30
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
198 次 |
| 最近记录: |