DEUG 1ere année
MIAS 1 et MASS 1 - Programmation fonctionnelle

TD 5

But : Écriture de fonctions récursives (bis).


Exercice 1 : Donner la spécification et définir en scheme une fonction som-rangs-pairs qui renvoie la somme des éléments de rang pair d'une liste plate d'entiers.
(som-rangs-pairs '(2 3 5 6 7 1)) renvoie 10 (= 3+6+1).




Exercice 2 : Donner la spécification et définir en scheme une fonction pairs-fois10 qui multiplie par dix tous les entiers pairs d'une liste plate d'entiers.
(pairs-fois10 '(3 5 7 2 9 18) renvoie (3 5 7 20 9 180).




Exercice 3 : Donner la spécification et définir en scheme une fonction dedouble qui dédouble chaque élément d'une liste plate.
(dedouble '(a f 3 "toto" 10)) renvoie (a a f f 3 3 "toto" "toto" 10 10).




Exercice 4 : Donner la spécification et définir en scheme une fonction pardeux qui groupe les éléments d'une liste plate par deux. Attention au cas où il y a un nombre impair d'éléments.
(pardeux '(a 2 4 f h 5 x)) renvoie ((a 2)(4 f)(h 5)(x)).




Exercice 5 : Donner la spécification et définir en scheme un prédicat tous-egaux? qui prend une liste plate et est vrai si tous les éléments de la liste sont les mêmes.
(tous-egaux? '(a s d f g)) renvoie #f.
(tous-egaux? '(r r r r r r r)) renvoie #t.