Bonjour,
J'ai deux fonction que je ne trouves pas la réponse total :
1. Faire une fonction pour récupérer dans une liste le premier de chaque doublet dont le deuxième élément est supérieur à 10.
'( (1 . 27) (3 . 9) ( (2 . 33) (5 . 27) (4 . 52) (7 . 8) ) (6 . 74) )
ma fonction est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 (defun atomes (nomber liste) (cond ((not liste) nil) ((and (listp (car liste)) (>= (cdr (car liste)) nomber)) (cons (car (car liste)) (atomes nomber (cdr liste))) ) ((atomes nomber (car (cdr liste)))) ))Normalement je devais avoir comme résltat :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [4]> (atomes 10 '( (1 . 27) (3 . 9) ( (2 . 33) (5 . 27) (4 . 52) (7 . 8) ) (6 . 74) )) (1 2 5 4)
2. Modifier la liste pour qu'elle ne contienne plus que les doublets dont le deuxième élément est supérieur à 10.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 [4]> (atomes 10 '( (1 . 27) (3 . 9) ( (2 . 33) (5 . 27) (4 . 52) (7 . 8) ) (6 . 74) )) (1 2 5 4 6)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 (defun atomes (nomber liste) (cond ((not liste) nil) ((and (listp (car liste)) (>= (cdr (car liste)) nomber)) (rplacd liste (atomes nomber (cdr liste))) ) ((atomes nomber (car (cdr liste)))) ))
Partager