Bonjour,
Je suis débutant en lisp et j'essaye de parcourir une liste. Or je m'apercois qu'en fonction de la definition de la liste cela devient de plus en plus complexe à parcourir ou sinon c'est moi qui déraille.
Le but est de faire à la façon du jeu "Qui est-ce ?", poser des questions pour deviner qui est-ce.
Genre quand il ne me reste plus que (tag . "Ai-je une moustache" ) que je pose la question "Ai-je une moustache?"
J'ai beaucoup de mal à comprendre la facon d'aborder lisp
Par exemple avec une liste comme ça et le programme comme ça, cela ne marche pas pour juste isoler la partie "tag":
Code :
- (setq mesinfos
- '((est_b1 (elementaire . t)
- (tag . "Ai-je une moustache ?" ))
-
- (est_b2 (elementaire . t)
- (tag . "Ai-je un chapeau ?" ))
-
- (est_b3 (elementaire . t)
- (tag . "Ai-je des lunettes ?" ))
- )
- ;;voici mon bout de code
- (defun parcours-liste (MyList)
- ;; Calcule la longueur de la liste
- (setq MyLength (length MyList))
-
- ;; Recurse dans la liste
- (cond
- ;; Test si la liste est finie
- (not MyListe) nil)
-
- (listp (car MyList)) (parcours-liste (car MyList))
- ;; Parcours chaque element de la liste
- (loop for Indx from 0 to MyLength do
- (format "~a ~%" (cdr MyList)
- )
- )
- )
|