在Scala中添加不同起点的列表

时间:2014-08-15 00:19:31

标签: scala scala-collections

我需要将一个带有索引的列表相加以指定起点。 例如,sum(1, List(1,2,3))应返回2 + 3,因为第一个参数1指定起始值List(1) == 2。同样,sum(2, List(1,2,3))将返回3.

我有这个功能的代码,但我认为它过于复杂。是否有更简单的实施?

def sum (index:Int, bits:List[Int]) = {
  ((bits zipWithIndex).filter { case (v, i) => i >= index}).unzip._1.sum
}

1 个答案:

答案 0 :(得分:7)

试试这个。

def sum(index: Int, bits: List[Int]) = bits.drop(index).sum