Salut,
Alors moi je débute en scheme mais pour éliminer les doublons d'une liste déjà triée j'aurais fait quelque chose dans ce style :
Alors par contre on ne peut pas envoyer de liste vide (réflexe du codage en C, je ne sais pas si en scheme on s'en préocupe ?). Mais à part ça ça fonctionne. Mais ça ne ressemble pas à ce que vous avez montré au-dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 (define (doublons l) (cond ((null? (cdr l)) (car l)) ((eq? (car l) (car (cdr l))) (doublons (cdr l))) (else (append (list (car l)) (list (doublons (cdr l))))))) (define l (list 1 2 2 2 4 4 5)) (display (doublons l)) (newline)
Je me trompe ou vous avez traité le cas général et c'est pour ça que je n'ai pas compris ?
Merci.
Partager