
   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.