Licence 1 Année 2010 - 2011
UE Informatique 2
Programmation fonctionnelle
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.