我一直在試圖完成這個使用列表輸出列表中所有正整數的總和的scala代碼..我得到它的工作,除了它只適用於正數。但我不能讓它只輸出正數。我有兩個版本,一直試圖去工作,我想也許這將是更容易的機智案件,但我最終遇到了同樣的問題。我一直在嘗試如果聲明xs < 0,但那些不起作用,我不能讓過濾器與摺疊工作。有關如何處理這個問題的任何建議?使用列表的整數求和
def sum(xs: List[Int]): Int = {
xs.filter((x: Int) => x > 0)
xs.foldLeft(0) { _ + _ }
}
def sum2(xs: List[Int]): Int = xs match {
case Nil => 0
case y :: ys => y + sum(ys)
}
您的問題是xs.filter不修改XS但返回新的名單。所以你想鏈接它xs.filter(...)。foldLeft(...) – 2014-11-23 23:29:46