Je joue avec la langue pour commencer à apprendre et je suis perplexe au-delà de mes esprits sur la façon dont une définition récursive fonctionne.Comment fonctionne la définition (co) récursive dans Haskell?
Par exemple, nous allons prendre la séquence des nombres (Triangular TN n = sum [1..n]
)
La solution proposée était:
triangularNumbers = scanl1 (+) [1..]
Jusqu'à présent, si bon.
Mais la solution que je ne viens avec était:
triangularNumbers = zipWith (+) [1..] $ 0 : triangularNumbers
Ce qui est correct. Maintenant, ma question est: comment cela se traduit par une implémentation de niveau inférieur? Que se passe-t-il exactement derrière la scène quand une telle définition récursive est satisfaite?
Il a probablement été demandé et répondu avant, mais la recherche de "définition récursive" ne soulève que des questions liées à la récursion dans le sens algorithmique –
[this] (https://hackhands.com/lazy-evaluation-works-haskell/) pourrait aider. – Alec
Commencez par comprendre [[1 ..] '. –