私は2つのリストを取り、2つのリストの合計を返すこの関数を持っています。複数のリストにわたるスカラ再帰
例:十分
def sumOfSums(a: List[Int], b: List[Int]): Int = {
var sum = 0
for(elem <- a) sum += elem
for(elem <- b) sum += elem
sum
}
シンプルな、しかし今私は再帰的にそれをやろうとしていると、2番目のリストのパラメータは、私を投げています。
def sumOfSumsRec(a: List[Int], b: List[Int], acc: Int): Int = a match {
case Nil => acc
case h :: t => sumOfSumsRec(t, acc + h)
}
ここ2つの問題があります:
- 私は、私はエラーを取得しています ''
List
- に一致していますが、私がこれまで持って何
acc + h
をしようとすると、なぜわからないのですか。
質問:質問:合計を得るために2つのリストを再帰的に反復することはできますか?
あなたが再帰前にリストをマージすることはできません使用することを検討してください:その他の目的のために、すべての手段で? 2番目の問題については、 'sumOfSumsRec'が2ではなく3つの引数を必要とするためです。 – Shaido