名單

2015-05-08 12 views
0

我試圖創建一個函數來獲取前值的列表。我在下面的函數中使用了一個非常好的方法,但它使用了一個可變的currValue。我試圖避免在地圖之外有這個變種。名單

我的功能是:

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

你不應該這麼問這樣的問題。你應該嘗試一些東西,告訴我們你卡在哪裏。這不是你爲你寫代碼的地方。 – manojlds

+0

很抱歉,重新格式化了我的問題。我嘗試了一些東西,但功能似乎很糟糕。 –

回答

4

您可以使用scan

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

掃描像fold除非它讓每個中間結果。我們拿tail擺脫第一個零元素。