我有列表集合,我想为集合中的每个列表应用“reduce +”。我想我应该结合“应用”,“地图”和“减少+”,但我无法理解。
例:
[[1 2 3] [4 5 3] [2 5 1]] => [6 12 8]
答案 0 :(得分:4)
无需apply
。 map
和reduce
可以正常使用:
(map (partial reduce +) [[1 2 3] [4 5 3] [2 5 1]])
map
会在列表中的每个成员上调用该函数,partial
只会创建一个' curry'需要一个参数的reduce版本。它也可以写成#(reduce + %)
或(fn [lst] (reduce + lst))
<强>更新强>
你实际上可以在这里使用apply代替reduce(只是不是两者):
(map (partial apply +) [[1 2 3] [4 5 3] [2 5 1]])
进一步更新
如果您有任何性能方面的问题,请参阅@AlexMiller的一些重要提示,以获取有关此答案的评论