gpt4 book ai didi

clojure - 对 seq 的每个元素应用reduce

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

我有列表集合,我想对集合中的每个列表应用“reduce +”。我想我应该结合“apply”,“map”和“reduce +”,但我不明白如何结合。例子: [[1 2 3] [4 5 3] [2 5 1]] => [6 12 8]

最佳答案

无需申请mapreduce 可以正常工作:

(map (partial reduce +) [[1 2 3] [4 5 3] [2 5 1]])

map 将调用列表中每个成员的函数,而 partial 只是创建一个需要一个参数的“柯里化(Currying)”版本的reduce。它也可以写成 #(reduce + %)(fn [lst] (reduce + lst))

更新

实际上,您也可以在这里使用 apply 代替 reduce (只是不能同时使用两者):

(map (partial apply +) [[1 2 3] [4 5 3] [2 5 1]])

进一步更新

如果您有任何性能问题,请参阅此答案的评论,了解 @AlexMiller 的一些重要提示

关于clojure - 对 seq 的每个元素应用reduce,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42024984/

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