要使用折叠求和,我使用:
val l = List(1, 2, 3)
val sum = l.fold(0) { (a, b) => a + b }
如何在列表中捕获每个添加操作的结果?因此,对于上述内容,存储了以下内容:
List(0,1,3,6)
我只能想到的选项是在列表上迭代迭代,并将每个操作的结果存储在一个可变列表中。
答案 0 :(得分:4)
这是scanLeft
的作用!
scala> val sum = l.scanLeft(0) { (a, b) => a + b }
sum: List[Int] = List(0, 1, 3, 6)
这正是您正在寻找的 - fold
的一个版本,它保留了每个操作的结果。