Bonjour à tous,

Je dois faire une fonction qui modifie une liste pour ne garder que les éléments qui commencent par une lettre donnée.
Par exemple :
(setq atomes '(pierre feuille ciseaux perdu jeu))
et ne retenir que ceux commençant par P ...

Voici ce que j'ai fait :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
(defun commence-par (lettre liste)
    (cond 
        ((atom liste) nil)
        ((and (car liste) (equal (char (string (car liste)) 0) (char (string lettre) 0)))
            (rplacd liste (commence-par lettre (cdr liste))) )
        ((not (equal (char (string (car liste)) 0) (char (string lettre) 0))) 
            (commence-par lettre (cdr liste))) ) )
Merci pour votre aide et vos explications.