Bonjour,
Je souhaite créer une fonction qui supprime les doublons dans une liste.
par ex: (doublons '(1 1 2 2 4 5)) --> (1 2 4 5)
Voici mon code:
(define (doublons l)
(cond ((or (null? l) (null? (cdr l))) l)
((equal? (car l) (cadr l)) (doublons (cdr l)))
(else (cons (car l) (doublons (cdr l))))
)
)
Il fonctionne lorsque les éléments de la liste sont des nombres.
En revanche il ne fonctionne pas pour des éléments autre que des nombres,
(doublons '((1 1) (1 2) (1 1))) renvoie ((1 1) (1 2) (1 1))
Comment surmonter ce problème, j'ai passé énormement de temps dessus et reste bloqué.
Merci d'avance.