| 020PFSES3 | Programmation fonctionnelle |
|---|---|
|
L’objectif de ce cours est d’introduire le paradigme de la programmation fonctionnelle, en utilisant principalement le langage Java. Il illustre également certains concepts de programmation fonctionnelle en Python et introduit Scala comme langage hybride multi-paradigme. Le cours débute par une vue d’ensemble de la programmation fonctionnelle, suivie d’une exposition progressive du modèle d’évaluation (utilisé pour raisonner sur les programmes fonctionnels) ainsi que des concepts suivants : la récursivité et l’optimisation des fonctions récursives, l’utilisation des fonctions comme valeurs, l’application partielle de fonctions, l’immuabilité des objets et ses avantages, les types et le filtrage par motifs (pattern matching), les paires et tuples, les listes et collections fonctionnelles, la résolution de problèmes de recherche combinatoire à l’aide des expressions for, l’évaluation paresseuse, les flux fonctionnels, les séquences infinies, la variance du polymorphisme par rapport à l’héritage, et un aperçu des principales monades telles que Option, Try et Future. Ces concepts seront illustrés par des exemples et exercices en Java, Python et Scala. Enfin, le cours se conclura par une introduction à la preuve de programmes via l’induction structurelle. Temps présentiel : 30 heures Charge de travail étudiant : 70 heures Méthode(s) d'évaluation : Examen écrit |
| Les prérequis de ce cours sont les suivants | |
|---|---|
| Programmation orientée objets |