Licence 1 UE Informatique 2 Programmation fonctionnelle Année 2010 - 2011 TD n°2 Exercice 1 Etant donnée la définition : f (x,y) = (x+y , x*y), indiquer le type et la valeur des expressions suivantes, (éventuellement les erreurs de syntaxe peuvent être détectées et corrigées), - f 3 , 2 ;; - f (f(3,2)) ;; - f f(3,2) ;; - f ( -3 , 2) ;; - f -3 , 2 ;; - let z = -3 , 2 ;; f z ;; Exercice 2 Etant donnée la définition :f g h x y z = g x y && h y z 1°/ Proposer des définitions de g et de h 2°/ Quelle est la nature de f g h ? 3° Evaluer : f (fun x y -> x > y) (fun x y -> x * x > y) 4 (-3) 5 Exercice 3 Ecrire l'addition comme une fonction de deux arguments puis comme une fonction d'un seul argument qui soit un couple. Exercice 4 Ecrire une fonction f de deux arguments qui retourne le plus grand de deux arguments. En utilisant la fonction précédente écrire une fonction g ayant 3 arguments et qui retourne la plus grande des trois valeurs. Exercice 5 Ecrire une fonction qui à une chaîne associe un entier 8 pour dimanche, 7 pour samedi et 6 pour les autres jours. On écrira deux versions différentes de cette fonction Exercice 6 Ecrire une fonction qui permet d'appliquer une fonction au résultat de la fonction ( fof(x) ). Exercice 7 Ecrire une fonction qui donne le nombre de chiffre d'un entier écrit en base 10.