J'ai cette fonction qui prend deux listes et retourne la somme des deux listes.Scala récursion sur plusieurs listes
Exemple:
def sumOfSums(a: List[Int], b: List[Int]): Int = {
var sum = 0
for(elem <- a) sum += elem
for(elem <- b) sum += elem
sum
}
assez simple, mais je suis maintenant essayer de le faire récursive et le second paramètre de liste me jetant.
Ce que j'ai jusqu'à présent:
def sumOfSumsRec(a: List[Int], b: List[Int], acc: Int): Int = a match {
case Nil => acc
case h :: t => sumOfSumsRec(t, acc + h)
}
Il y a 2 problèmes ici:
- Je ne correspondant sur le 'a'
List
- Je reçois une erreur quand j'essaie de faire
acc + h
, je ne sais pas pourquoi.
Question: Comment puis-je itérer récursivement sur deux listes pour obtenir leur somme?
Tu ne peux pas fusionner les listes avant la récursion? Aussi pour le deuxième problème, c'est parce que votre 'sumOfSumsRec' nécessite 3 arguments, pas 2. – Shaido