Aidez moi SVP; je n'arrive pas à comprendre la technique des accumulateurs . C'est vrai théoriquement, on disait à chaque fois que l'usage des accumulateurs permet d'éliminer la gestion de la pile récursive, ie on évite l'empilage des objets pour pouvoir les utiliser ensuite, et qu'avec cette technique, on passe d'une complexité quadratique à une complexité linéaire efficace et moins coûteuse, mais j'ai du mal à mettre en pratique tout çà.
en particulier, voici un exemple d'utilisation d'un accumulateur pour calculer le factoriel d'un entier:
et voici la définition de fact:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 (define fact_a (lambda (n a) (if (zero? n) a (fact_a (- n 1) (* a n)))))
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 (define fact (lambda (n) (fact_a n 1)))
Partager