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.