L3 - Programmation fonctionnelle compétences à acquérir
1 A propos de ce document
Ce document identie les principales compétences en programmation fonctionnelle à acquérir pour valider l'unité d'enseignement Programmation logique et fonctionnelle de L3. Ces compétences seront enseignées et entraînées en cours, en séances de TD et en séances de TP. Pour ne pas être pris au dépourvu, il est important que vous sachiez à tout moment quelles sont, parmi ces compétences, celles que vous maîtrisez complètement, celles que vous maîtrisez partiellement et celles que vous ne maîtrisez pas encore. Ces informations doivent vous guider pour déterminer, avec l'aide de vos enseignants, le type d'exercices à faire à titre de travail personnel.
L'enjeu est non seulement de maîtriser séparément ces compétences, mais aussi d'être capable de traiter des exercices qui requièrent de combiner plusieurs d'entre elles.
2 Grille de compétences
C : Lambda-calcul
C.1 : Syntaxe des termes
Savoir déterminer si un terme de λ-calcul est syntaxiquement correct.
Savoir identier les abstractions et les applications, et décomposer un terme de manière à faire apparaître ces deux sortes de sous-termes.
C.2 : Variables libres
Savoir identier les occurrences libres de variables dans un terme.
C.3 : Evaluation d'un terme
Savoir identier un redex dans un terme.
Savoir évaluer un terme.
M : Langage Caml
M.1 : Signature d'une fonction
Savoir formuler la signature d'une fonction spéciée en Caml, quelle que soit la syntaxe utilisée pour cette spécication.
M.2 : Spécication d'une fonction
Savoir réaliser une fonction eectuant un calcul ou la vérication d'une propriété sur des données scalaires, en utilisant la récursivité.
1
M.3 : Listes
Savoir réaliser une fonction vériant si une liste respecte une propriété, ou calcu- lant une valeur scalaire à partir des informations contenues dans une liste.
Savoir réaliser une fonction qui construit une liste en exploitant les informations contenues dans une ou plusieurs listes et/ou données scalaires passées en para- mètre.
Savoir simuler l'exécution de telles fonctions.
M.4 : Fonctions d'ordre supérieur
Savoir réaliser une fonction applicant une fonction existante (passée en paramètre) à tout ou partie des éléments d'une liste.
M.5 : Enregistrements
Savoir réaliser une fonction acceptant en paramètre et/ou retournant des données de type enregistrement.
M.6 : Variantes
Savoir dénir un type autoréférent (arbre, séquence, expression...) à l'aide de variantes.
Savoir spécier une fonction réalisant une transformation, vériant une propriété ou réalisant un calcul sur des données appartenant à un type autoréférent déni à l'aide de variantes.
2