Précédent   Forum du club des développeurs et IT Pro > Autres langages > Langages fonctionnels > Scheme
Scheme Forum d'entraide sur la programmation en langage fonctionnel Scheme
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/03/2011, 01h13   #1
borough
Invité de passage
 
debit
Inscription : février 2011
Messages : 10
Détails du profil
Informations personnelles :
Nom : debit

Informations forums :
Inscription : février 2011
Messages : 10
Points : 0
Points : 0
Par défaut Accumulateurs

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:
Code :
1
2
3
 (define fact_a
  (lambda (n a)
    (if (zero? n) a (fact_a (- n 1) (* a n)))))
et voici la définition de fact:

Code :
1
2
(define fact
  (lambda (n) (fact_a n 1)))
borough est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 21h20   #2
Nicolas_75
Membre éprouvé
 
Inscription : mars 2005
Messages : 427
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 427
Points : 439
Points : 439
Bonjour,

Voici une représentation des évaluations successives :
(fact 4)
(fact_a 4 1)
(fact_a 3 1*4)
(fact_a 2 1*4*3)
(fact_a 1 1*4*3*2)
(fact_a 0 1*4*3*2*1)
1*4*3*2*1

a prend successivement les valeurs 4, 4*3, 4*3*2, ... jusqu'à 4!

Nicolas
Nicolas_75 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 05h52.


 
 
 
 
Partenaires

Hébergement Web