在列表

时间:2015-11-25 22:00:27

标签: scala

要使用折叠求和,我使用:

  val l = List(1, 2, 3)
  val sum = l.fold(0) { (a, b) => a + b }

如何在列表中捕获每个添加操作的结果?因此,对于上述内容,存储了以下内容:

List(0,1,3,6)

我只能想到的选项是在列表上迭代迭代,并将每个操作的结果存储在一个可变列表中。

1 个答案:

答案 0 :(得分:4)

这是scanLeft的作用!

scala> val sum = l.scanLeft(0) { (a, b) => a + b }
sum: List[Int] = List(0, 1, 3, 6)

这正是您正在寻找的 - fold的一个版本,它保留了每个操作的结果。