我有一个嵌套的矢量矢量,比如[[1 2 3] [4 5 6] [7 8 9]]
,我想增加每个子矢量的值,然后找到每个子矢量的最大值。我使用的配方是:
(map (comp (partial apply max) (partial map inc)) [[1 2 3] [4 5 6] [7 8 9]])
有更好的方法吗?
答案 0 :(得分:1)
要实现目标,您可以将max
/ inc
合并,并将一个电话保存到map
:
(map (comp inc #(apply max %)) [[1 2 3] [4 5 6] [7 8 9]])
;; => (4 7 10)
但这只是一个微小的改进,实际上颠倒了操作的顺序。但是可能更具可读性。
答案 1 :(得分:1)
基于@xsc's answer,但尊重操作顺序......
(map #(->> % (map inc) (apply max)) [[1 2 3] [4 5 6] [7 8 9]])
;(4 7 10)