相关疑难解决方法(0)

Scala:产生折叠的中间结果

我遇到过在整个地图操作中多次维护状态的问题.想象一下以下任务:

给定List [Int],将每个元素映射到所有前面元素和它自身的总和.
因此1,2,3变为1,1 + 2,1 + 2 + 3.

我提出的一个解决方案是:

scala> val a = 1 to 5                                                
a: scala.collection.immutable.Range.Inclusive with scala.collection.immutable.Range.ByOne = Range(1, 2, 3, 4, 5)

scala> a.foldLeft(List(0)){ case (l,i) => (l.head + i) :: l }.reverse
res3: List[Int] = List(0, 1, 3, 6, 10, 15)
Run Code Online (Sandbox Code Playgroud)

但不知何故,我觉得必须有一个更简单的解决方案.

functional-programming scala

16
推荐指数
4
解决办法
7779
查看次数

标签 统计

functional-programming ×1

scala ×1