L'UE programmation fonctionnelle aborde la notion de fonction comme étant une valeur au même titre que des valeurs plus simples. Cela facilite la généralisation des traitements et la paramétrisation des comportements (comme dans le cadre de certaines pratique de programmation concurrente). On y aborde plus particulièrement les points suivants:
- lambda-calcul: le langage fonctionnel théorique fondamental
- typage: types de bases et types paramétrés
- retour sur la récursivité et lien avec les types de structures
- ordre supérieur
- fonctions pures et non-pures, fermetures
- généralisation des traitements sur les collections
- introduction à la programmation asynchrone
Ces notions seront mises en pratique à travers un langage de programmation fonctionnelle fortement typé.