On étudiera les bases de la programmation purement fonctionnelle et notamment la récursion, aussi bien au niveau des fonctions récursives que des types algébriques. On étudiera en particulier les types entiers, les records, le tuples, les listes et les arbres.
Les TDs et les TPs mettront en œuvre les concepts du cours en OCaml.
On approfondira la notion de type algébrique via la notion d'arbre de syntaxe abstraite. On étudiera l'interaction des traits impératifs et fonctionnels et notamment, on verra les références, les champs mutables et quelques structures de données semi-persistences.
On abordera la programmation modulaire à l'aide des foncteurs d'OCaml.
Les TDs et les TPs mettront en œuvre les concepts du cours en OCaml.