Je me demande de faire une fonction haskell qui calcule quelque chose commeAjout des pouvoirs des nombres dans haskell avec foldl
1^2 + 2^2 + 3^2 ...
Bien que je trouve assez facile à mettre en œuvre avec la liste compréhensions
sum [ k^2 | k <- [1..100]]
ou des cartes
sum (map (\x -> x*x) [1..100])
Je rencontre des difficultés à obtenir des plis.
Si je ne me trompe pas, il faut pas moins de 3 paramètres dans une fonction récursive pour obtenir un résultat avec ceci:
- La position actuelle (1 ... jusqu'à n)
- Le somme actuelle
- Où arrêter
Même si je décris cette fonction, il retournera encore un tuple, pas un nombre (comme je l'ai besoin pour!).
Quelqu'un pourrait-il être assez aimable pour me donner des indices sur ce que je pourrais manquer?
Merci
Incidemment, je recommanderais aussi généralement' foldl'' (défini dans Data.List) pour cela, ce qui oblige l'accumulateur à être évalué à chaque étape. Lorsque vous compilez avec GHC, il le sait de toute façon, mais dans GHCi ou Hugs, il peut faire la différence entre courir dans un espace constant ou manquer de mémoire. – mokus