une fonction qui construit à partir d'une liste, une liste sans les éléments qui commencent par une lettre
Bonjour,
Je dois faire une fonction qui construit, à partir d'une liste, une liste sans les éléments qui commencent par une lettre donnée, en utilisant les fonctions 'string' et 'char' comme par exemple :
Code:
(supprime'n '(art nez pied nez prendre silence nu)) => (art pied prendre silence)
Voila ce que j'ai fait pour l'instant :
Code:
1 2 3 4 5
| (defun supprime (x list)
(cond
((not list) nil)
((equal (char (string (car list))0) #\X)(supprime (char (string(cdr list))0)#\X)
(t (cons (char (string (car list))0)#\X) (supprime (char(string (cdr list))0)#\X) ) ) |
Mais il me retourne :
Code:
1 2
| (supprime 'r '(ri de me))
NIL |
j'ai fait aussi :
Code:
1 2 3 4 5
| (defun supprime (r list)
(cond
((not list) nil)
((equal (char (string (car list))0) #\R)(supprime r (cdr list)))
(t (cons (car list) (supprime r (cdr list)))) ) ) |
mais il me retourne :
Code:
1 2 3 4
| (supprime 'd '(ri de me))
(DE ME)
(supprime 'm '(ri de me))
(DE ME) |
Qu'est ce que j'ai fait de mal ?