1
我有这个功能,需要两个列表并返回两个列表的总和。斯卡拉递归在多个列表
例子:
def sumOfSums(a: List[Int], b: List[Int]): Int = {
var sum = 0
for(elem <- a) sum += elem
for(elem <- b) sum += elem
sum
}
够简单了,但是现在我想递归地做到这一点,第二个list参数扔我。
我到目前为止有:
def sumOfSumsRec(a: List[Int], b: List[Int], acc: Int): Int = a match {
case Nil => acc
case h :: t => sumOfSumsRec(t, acc + h)
}
有2个问题在这里:
- 我只匹配上的 'a'
List
- 我得到一个错误当我试图做
acc + h
,我不知道为什么。
问题:如何递归迭代两个列表以获得它们的总和?
你不能递归合并前的名单?另外对于第二个问题,那是因为你的'sumOfSumsRec'需要3个参数,而不是2个。 – Shaido