Programmation fonctionnelle
Cursus master ingénierie (CMI) - UFR de mathématique et d'informatiqueParcours Cursus master ingénierie (CMI) - Informatique, systèmes et réseaux
Description
Cette UE présente le paradigme de programmation fonctionnelle, ses principes fondateurs (composition de fonctions, variables au sens mathématique, propriété de transparence référentielle, pureté), les concepts de base permettant d’écrire un programme dans ce mode (équation fonctionnelle, application de fonction, conditionnelle, fonction anonyme, définition temporaire, récursivité), ainsi que des notions plus avancées (fonctionnelles, fonctions d'ordre supérieur, curryfication, application partielle). Les types omniprésents dans les langages fonctionnels récents y sont étudiés (constructeurs * et ->, types produits et sommes, types récursifs (exemple des listes), filtrage, polymorphisme, calcul ou inférence de types). Les différentes stratégies d’évaluation (évaluation affairée, paresseuse) des expressions fonctionnelles y sont discutées. Les programmes illustratifs sont écrits en utilisant le langage support Haskell.
Compétences requises
À l'entrée de cette UE, un étudiant devrait avoir suivi un enseignement de mathématiques introduisant aux notions suivantes : ensembles, suites récurrentes, fonctions (dérivée, intégrale), équations (résolution d'une équation du premier ou du second degré), preuve par récurrence.
Compétences visées
À l'issue de cette UE, un étudiant est capable de :
- faire la distinction entre l'approche fonctionnelle et l'approche impérative
- programmer en utilisant le mode fonctionnel dans tout langage de programmation l’autorisant
- utiliser le procédé de programmation par filtrage
- reconnaître et réutiliser les principales fonctions d’ordre supérieur (fold,map) sur les listes
- se rapprocher des termes du problème en définissant et en utilisant de nouveaux types
Bibliographie
Références :
- Graham Hutton, Programming in Haskell, Cambridge University Press, 2007
- Simon Thompson, Haskell: The Craft of Functional Programming, Addison Wesley, 2011
- Eric Violard, Mini-manuel de Programmation fonctionnelle, Dunod, 2014
Contacts
Responsable(s) de l'enseignement
MCC
Les épreuves indiquées respectent et appliquent le règlement de votre formation, disponible dans l'onglet Documents de la description de la formation.
- Régime d'évaluation
- ECI (Évaluation continue intégrale)
- Coefficient
- 4.0
Évaluation initiale / Session principale - Épreuves
Libellé | Type d'évaluation | Nature de l'épreuve | Durée (en minutes) | Coéfficient de l'épreuve | Note éliminatoire de l'épreuve | Note reportée en session 2 |
---|---|---|---|---|---|---|
épreuve écrite 1 | SC | ET | 90 | 0.3 | ||
TP noté, épreuve pratique | AC | ET | 90 | 0.2 | ||
écrit sur table | AC | ET | 90 | 0.5 |