Version sans JavaScript, en lecture seule : les ateliers, les quiz et l’exécution du code n’y sont pas. Version complète · Catalogue · Se connecter
EPITA · Toulouse · 1re année (cycle préparatoire)
Programmation fonctionnelle en Caml
Un séminaire d'algorithmique en Caml pour débuter la programmation : définitions, types, fonctions, analyse par cas, aspects impératifs et récursivité.
Le séminaire de programmation fonctionnelle que j'ai donné en première année à l'EPITA Toulouse, en 2019-2020 : six chapitres et cinq feuilles d'exercices.
Les exemples s'exécutent dans la page : l'interprète OCaml y tourne, et affiche sa réponse sous chaque phrase. Modifiez-les, relancez-les, cassez-les : c'est ainsi qu'on apprend un langage. Pour vos propres programmes, le Bac à sable OCaml (dans le menu, rubrique « Libre ») garde votre code dans ce navigateur. Le premier chargement télécharge l'interprète (environ 2 Mo) ; les pages suivantes s'en servent sans attendre.
Supports de cours
- Introduction : Ce qu'est l'algorithmique, ce qu'est un langage de programmation, et pourquoi commencer par un langage fonctionnel.
- Bases de Caml : Définitions, types de base, expressions et premières fonctions prédéfinies.
- Fonctions : Définir et appliquer des fonctions, à un ou plusieurs paramètres, et lire leur type.
- Analyse par cas : Choisir selon une condition ou selon la forme d'une valeur. L'alternative, les exceptions, le filtrage, les fonctions anonymes et les n-uplets.
- Aspects impératifs : Effets de bord, affichage, le type unit, les séquences et les blocs.
- Récursivité : Penser et écrire une fonction récursive, de la factorielle aux tours de Hanoï, et mesurer ce qu'elle coûte.
Feuilles d'exercices
- Bases de Caml : Prévoir le type et la valeur d'une expression, suivre des définitions qui se masquent, et utiliser les opérateurs paresseux et les conversions. Chapitre 1.
- Fonctions : Lire le type d'une fonction, écrire ses premières fonctions, placer les parenthèses, et découvrir l'application partielle. Chapitre 2.
- Analyse par cas : Alternatives, exceptions, filtrage de valeurs et de couples, gardes, et les avertissements du compilateur. Chapitre 3.
- Aspects impératifs : Prévoir ce qu'affiche une séquence, distinguer une procédure de son appel, et placer les begin … end. Chapitre 4.
- Récursivité : Écrire des fonctions récursives sur les entiers, afficher avec la récursivité, raisonner sur la terminaison et compter les appels. Chapitre 5.