~~NOTOC~~ ====== Programmation Fonctionnelle (PF5) ====== ===== Description ===== Apprentissage des primitives de la programmation fonctionnelle à travers le langage OCaml. La programmation fonctionnelle est un des paradigmes principaux de programmation que tout informaticien doit connaître. En particulier, elle permet de programmer très facilement avec des types de données structurées (comme par exemple lors de la conception de compilateur). Cette forme de programmation sans état est également très importante pour le calcul distribué (voir MapReduce). On retrouve désormais des aspects de programmation fonctionnelle dans des langages aussi répandus que Java et Python. Néanmoins, l'utilisation d'un langage dédié est recommandé pour profiter au mieux des possibilités de ce paradigme de programmation, en particulier au niveau du typage. C'est pourquoi ce cours s'appuiera sur le langage OCaml. ===== Syllabus ===== ==== Sujets centraux ==== - Types de base (int, float, bool, char), déclaration des valeurs - Fonctions, récursivité, fonctions de premier ordre - Listes - Types algébriques : produit, somme, récursion, polymorphisme - Enregistrements - Filtrage par motifs - Exceptions - Type unit et effets de bord : input/output, traits impératifs. ==== Sujets potentiellement traités ==== ===== Pré-requis =====