如何操作矢量中的每个项目并参考Clojure中的先前值?

scr*_*tty 4 clojure

鉴于:

(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!肖恩

Bri*_*per 6

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)