具有先前值之和的整数列表

时间:2015-05-08 17:50:10

标签: scala

我正在尝试创建一个函数来获取以前的值列表。我在下面的函数中有一种非常优雅的方式,但它使用了一个可变的currValue。我试图避免在地图之外有这个var。

我的功能是:

def getSummedList(list: List[Int]) = {
    var currValue = 0
    val newList = list.map {v=>
        currValue += v
        currValue
    }
    newList 
}

1 个答案:

答案 0 :(得分:4)

您可以使用scan

def getSummedList(list: List[Int]) = list.scan(0) ( _ + _ ).tail

扫描与fold类似,但保留每个中间结果。我们采用tail去掉第一个零元素。