L3 - Programmation fonctionnelle - TP1 1 Objectifs
Les exercices proposés dans ce TP ont pour objet d'entrainer la compétence M.3 (Listes) de la grille de compétences de programmation fonctionnelle.
Votre but ne doit pas être de faire tous les exercices proposés pendant la séance de TP, mais plutôt de prendre le temps de comprendre et d'apprendre à appliquer les principes de base de la représentation et de la gestion des listes en caml.
Face au comportement inattendu d'un programme, ne restez pas dans le doute : faites des expériences, tentez de comprendre ce qui se passe, sollicitez l'enseignant.
2 Exercices
Compétence M.3 : Listes
Les fonctions demandées doivent être programmées en style fonctionnel pur (sans boucle) et sans utiliser d'éventuelles fonctions prédénies du langage. Chaque fonction doit être validée par des essais réalisés avec des données de test pertinentes.
2.1 Essai du compilateur
Implantez une fonction qui accepte en paramètre un entier n et retourne le nime terme de la suite de Fibonacci.
2.2 Somme des élements d'une liste
Implantez une fonction qui accepte en paramètre une liste d'entiers et qui retourne la somme des éléments de cette liste.
2.3 Construction d'une liste
Implantez une fonction qui accepte en paramètre un entier n et qui retourne une liste contenant n occurrences de la valeur0.
2.4 Accès aux éléments d'une liste
Implantez une fonction qui accepte en paramètres une liste L et un entier i, et qui retourne l'élément situé en positionidans la liste.
2.5 Miroir d'une liste
Implantez une fonction qui accepte en paramètre une liste Let qui retourne la liste miroir, c'est à dire comportant les mêmes éléments queLmais dans l'ordre inverse.
2.6 Recherche d'une sous-liste
Implantez une fonction qui accepte en paramètre deux listeLet S, et qui retourne la valeur Booléenne true si la listeS est une sous-liste deLet false dans le cas contraire.
2.7 Parties d'un ensemble
Dans cet exercice, on représente des ensembles par des listes dont chaque élément a exactement une occur- rence. Implantez une fonction acceptant un ensembleEen paramètre et retournant l'ensemble de toutes les parties deE. Par exemple, pourE= [1,2,3], la valeur de retour serait[[],[1],[2],[3],[1,2],[1,3],[2,3],[1,2,3]]
(à l'ordre des éléments près).
1