L3 - Programmation fonctionnelle - TD2 1 Révisions
Exercice 1 (20 mn) Compétence M.3 : listes
Réalisez une fonction caml qui accepte en paramètre un entiernet retourne une liste contenant les npremiers termes de la suite de Fibonacci classés par ordre de valeurs décroissantes.
2 Nouvelles compétences
Exercice 2 (20mn)
Compétence M.4 : fonctions d'ordre supérieur
Réalisez une fonction caml qui accepte en paramètre une listeqet une fonctionf, et qui retourne la liste des valeurs obtenues en appliquant la fonctionf à chacune des valeurs deq.
Exercice 3 (30mn)
Compétence M.5 : enregistrements
1. Donnez la déclaration d'un type point qui comporte deux attributs de types oat nommés x ety, représentant les coordonnées cartésiennes d'un point dans un espace Euclidien.
2. Réalisez une fonction qui accepte en paramètres deux points et retourne la distance Eucli- dienne entre ces points.
3. Réalisez une fonction qui accepte en paramètres un pointpet une liste de points q, et qui retrourne la moyenne des distances entrepet les points de q.
Exercice 4 (40 mn)
Compétence M.6 : variantes
1. Donnez la déclaration d'un type bintree (comme arbre binaire), en considérant qu'un arbre binaire est soit une feuille L, soit un noeud N possdant un attribut de type bool, ainsi qu'un ls gauche et un ls droit de type bintree.
2. Donnez un exemple d'arbre déni de cette manière, ainsi que sa représentation graphique.
3. Réalisez une fonction acceptant un arbre binaire en paramètre et retournant le nombre de feuilles de cet arbre.
4. Réalisez une fonction acceptant un arbre binaire en paramètre et retournant la profondeur de cet arbre, c'est à dire la longeur (nombre de noeuds) du plus long chemin entre la racine et une feuille.
5. Réalisez une fonction acceptant un arbre binaire en paramètre et retourant le nombre de noeuds de cet arbre ayant la valeur true.
1