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-2018 © Site WWW de Laurent Bloch - Tous droits réservés
Haut de page
Réalisé sous SPIP
Habillage ESCAL 4.1.6