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

pro*_*eek 2 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
}
Run Code Online (Sandbox Code Playgroud)

Ian*_*ird 7

试试这个.

def sum(index: Int, bits: List[Int]) = bits.drop(index).sum
Run Code Online (Sandbox Code Playgroud)