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é.

cours et feuilles d'exercices | OCaml

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

  1. Introduction : Ce qu'est l'algorithmique, ce qu'est un langage de programmation, et pourquoi commencer par un langage fonctionnel.
  2. Bases de Caml : Définitions, types de base, expressions et premières fonctions prédéfinies.
  3. Fonctions : Définir et appliquer des fonctions, à un ou plusieurs paramètres, et lire leur type.
  4. 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.
  5. Aspects impératifs : Effets de bord, affichage, le type unit, les séquences et les blocs.
  6. 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

  1. 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.
  2. Fonctions : Lire le type d'une fonction, écrire ses premières fonctions, placer les parenthèses, et découvrir l'application partielle. Chapitre 2.
  3. Analyse par cas : Alternatives, exceptions, filtrage de valeurs et de couples, gardes, et les avertissements du compilateur. Chapitre 3.
  4. 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.
  5. 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.