[CLisp] - Fonction Aplatir
Voici la fonction Aplatir qui transforme les sous-listes en liste :
Code:
1 2 3 4 5 6
| (defun aplatir (liste)
(cond
((null lst) lst)
((listp (car lst)) (append (aplatir (car lst)) (aplatir (cdr lst))))
((consp (car lst)) (append (aplatir (car lst)) (aplatir (cdr lst))))
(T (cons (car lst) (aplatir (cdr lst)))))) |
Elle fonction a merveille du moment que la sous-liste n'est pas circulaire :
Code:
1 2 3 4 5
| (aplatir '(a (b (c) (d)) (e f) (g (h)) nil))
(a b c d e f g h)
(aplatir '(a b (d . c)))
*** - car: c is not a list |
Quelqu'un pourrait m'aider a corriger cette erreur ? Merci :mouarf: