parcours d'une liste en lisp

parcours d'une liste en lisp - Divers - Programmation

Marsh Posté le 31-08-2016 à 23:03:43    

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  :ouch:  :bounce:  
 
Par exemple avec une liste comme ça et le programme comme ça, cela ne marche pas pour juste isoler la partie "tag":

Code :
  1. (setq mesinfos
  2. '((est_b1 (elementaire . t)
  3.    (tag . "Ai-je une moustache ?" ))
  4.  
  5.    (est_b2 (elementaire . t)
  6.    (tag . "Ai-je un chapeau ?" ))
  7.  
  8.    (est_b3 (elementaire . t)
  9.    (tag . "Ai-je des lunettes ?" ))
  10.    )
  11. ;;voici mon bout de code
  12. (defun parcours-liste (MyList)
  13.     ;; Calcule la longueur de la liste
  14.     (setq MyLength (length MyList))
  15.    
  16.     ;; Recurse dans la liste
  17.     (cond
  18.         ;; Test si la liste est finie
  19.         (not MyListe) nil)
  20.        
  21.         (listp (car MyList)) (parcours-liste (car MyList))
  22.         ;; Parcours chaque element de la liste
  23.         (loop for Indx from 0 to MyLength do
  24.             (format "~a ~%" (cdr MyList)
  25.         )
  26.     )
  27. )

Reply

Marsh Posté le 31-08-2016 à 23:03:43   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed