Bonjour,
J'apprends actuellement le lisp et j'ai quelques problèmes, notamment avec la compréhension des retour de fonctions.
J'ai une BaseTest, constituée d'une liste de personnes :
La fonction que je cherche à faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 (setq BaseTest '((Dupond Pierre Lyon 45 150) (Dupond Marie Nice 32 200) (Dupond Jacques Lyon 69 20) (Perrot Jacques Geneve 28 500) (Perrot Jean Nice 55 60) (Perrot Anna Grenoble 19 180) ))
En argument, je prends la BaseTest et je dois ressortir une liste composée des personnes dont le nom est Perrot.
Voilà ce que j'ai essayé de faire :
Je ne pense pas avoir bien saisir le rôle de la fonction 'return-from' d'une part ... et la fonction me renvoie forcément la dernière valeur de la BaseTest!
Code : Sélectionner tout - Visualiser dans une fenêtre à part (defun F2 (base) (dotimes (i (length base)) (if(member 'Perrot (nth i base)) (setq liste(list(member 'Perrot (nth i base)))) (return-from F2 liste))))
Comment faire pour tout renvoyer ?
Merci pour votre aide.
Partager