gpt4 book ai didi

clojure - 如何对向量中的每个项目进行操作并引用 Clojure 中的先前值?

转载 作者:行者123 更新时间:2023-12-02 12:45:25 25 4
gpt4 key购买 nike

给定:

(def my-vec [{:a "foo" :b 10} {:a "bar" :b 13} {:a "baz" :b 7}])

如何迭代每个元素以打印该元素的 :a 以及到该点的所有 :b 的总和?即:

“富”10
“酒吧”23
“巴兹”30

我正在尝试这样的事情但没有成功:

; Does not work!    
(map #(prn (:a %2) %1) (iterate #(+ (:b %2) %1) 0)) my-vec)

这不起作用,因为“迭代”lazy-seq 无法引用 my-vec 中的当前元素(据我所知)。

蒂亚!肖恩

最佳答案

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

关于clojure - 如何对向量中的每个项目进行操作并引用 Clojure 中的先前值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2359713/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com