Accesseurs sur listes en scheme

Fermé
marina - 2 mars 2008 à 14:56
 amigo - 2 mars 2008 à 19:02
Bonjour, j'ai un soucis pour accéder à des termes d'une liste en scheme , supposons que j'ai la liste suivante :

(list (list 1 2) (list 3 4) (list 5 7) (list 8 9))

Je souhaite accéder aux nomres 2 4 7 et 9 , avec les accesseurs car et cdr , quelqu'un aurait il une idée svp ?

merci

1 réponse

Bonjour,

la fonction (car liste) renvoie le prmier element de liste
la fonction (cdr liste) renvoie liste moins le premier element

soit L -> ( (1 2) (3 4) (5 7) (8 9) )

(define L (list (list 1 2) (list 3 4) (list 5 7) (list 8 9)))

;2 est le dernier element du premier element de L
(car L); -> renvoie (1 2)
(cdr (car L)) ;-> renvoie (2)
(car (cdr (car L))) ;-> renvoie 2

;4 est le dernier element du second element de L
(car (cdr L)) ; -> (3 4)
(cdr (car (cdr L))) ;-> (4)
(car (cdr (car (cdr L)))) ; -> 4

(car (cdr ( cdr L))); -> (5 7)
(cdr (car (cdr (cdr L)))); -> (7)
(car (cdr (car (cdr (cdr L))))) ; -> 7

(car (cdr (cdr (cdr L)))); -> (8 9)
(cdr (car (cdr (cdr (cdr L))))) ; -> (9)
(car (cdr (car (cdr (cdr (cdr L)))))) ; -> 9

Salut.
0