Site WWW de Laurent Bloch
Slogan du site

ISSN 2271-3905
Cliquez ici si vous voulez visiter mon autre site, orienté vers des sujets moins techniques.

Pour recevoir (au plus une fois par semaine) les nouveautés de ce site, indiquez ici votre adresse électronique :

reverse sans append
Article mis en ligne le 18 novembre 2005
dernière modification le 13 juillet 2012

par Laurent Bloch
logo imprimer

Comme promis voici une réalisation de la procédure reverse qui ne fait pas appel à la procédure append. En outre elle est itérative.

  1. (define (mon-reverse L)
  2. (define (epuise L dest)
  3. (if (null? L)
  4. dest
  5. (epuise (cdr L) (cons (car L) dest))))
  6. (epuise L '()))

Télécharger

Ou encore :

  1. (define (reverseb L)
  2. (let iter ((RL '())
  3. (L L))
  4. (if (null? L)
  5. RL
  6. (iter (cons (car L) RL)
  7. (cdr L)))))

Télécharger

Ou bien encore :

  1. (define (mon-reverse L)
  2. (letrec ((epuise
  3. (lambda (L dest)
  4. (if (null? L)
  5. dest
  6. (epuise (cdr L) (cons (car L) dest))))
  7. ))
  8. (epuise L '())))

Télécharger

Forum
Répondre à cet article


pucePlan du site puceContact puceMentions légales puceEspace rédacteurs puce

RSS

2004-2017 © Site WWW de Laurent Bloch - Tous droits réservés
Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.86.17