Je suis plutôt novice en Haskell. Le problème est de trouver la somme de tous les nombres pairs de Fibonacci qui ne sont pas supérieurs à 4 millions. Je ne peux pas utiliser de listes.
Si je comprends bien, la solution ci-dessous est fausse, car elle utilise des listes :
my_sum = sum $ filter (odd) $ takeWhile (< 4000000) fibs
Où fibres est la liste de tous les nombres de Fibonacci.
D'une certaine manière, je trouve difficile de ne pas penser en Haskell en termes de listes. Quelqu'un pourrait-il me guider vers une solution à ce problème ?
Salutations
EDIT :
Si cela intéresse quelqu'un, j'ai résolu ce problème. Voici le code (très maladroit, mais qui fonctionne néanmoins) :
findsum threshold = findsum' 0 1 0 threshold
findsum' n1 n2 accu t
| n2 > t = accu
| odd n2 = findsum' n2 n3 accu t
| otherwise = findsum' n2 n3 accu2 t
where
n3 = n2 + n1
accu2 = accu + n2