MIAS 1 et MASS 1 - Programmation fonctionnelle

TD 3


But : se familiariser avec la structure de liste

Exercice 1 : Donner les résultats de l'évaluation des expressions suivantes :

(cons 'a (cons 'b 'c))
(cons '() '() )
(cons 'a (cons (cons 'b '()) '() )
(pair? '())
(pair? (cons 'a '() ))
(list? (+ 2 3))




Exercice 2 : Idem pour les expressions suivantes :

(car (cdr '(a b c d)))
(cdr '(a (b c d)))
(car '((a b c)))
(car (cdr '(a (a b c) d f)))
(caddr '(a (a b c) d f))
(caar '( a (b c)))




Exercice 3 : On définit dans l'environnement global la variable :
(define l '(1 2 (3 (4) 5) 6 (7 8) 9))
donner les expressions dont l'evaluation renvoie les listes suivantes :

(1 3 (4) 5)
(6 1)




Exercice 4 : Donner la spécification et la définition en scheme du prédicat singleton? qui rend vrai si une liste n'a qu'un seul élément.




Exercice 5 : Donner la spécification et définir en scheme une fonction somme qui prend en argument une liste non vide contenant 1 à 3 nombres et renvoie comme résultat la somme de ces nombres (si la liste contient plus de 3 nombres, la fonction renvoie la somme des 3 premiers nombres).