Cours alternatif d’OCaml

Logo OCaml

Ce cours a pour vocation d’être une alternative à l’UE d’INF201 (programmation fonctionelle en OCaml) de l’Université de Grenoble-Alpes (UGA). En effet, cette UE est pour beaucoup assez ennuyante et a tendance à dégoûter les étudiant·e·s du langage, alors qu’OCaml peut s’avérer très intéressant. Nous ne savons pas si nous arriverons à faire mieux, mais ça ne coûte rien d’essayer. Ce cours ne couvrira donc que les bases du langage OCaml, et s’adresse principalement aux personnes ayant des bases en Python. Il se base sur ce qui a été vu en INF201 en 2020, et ne sera donc peut-être pas totalement à jour si les programmes changent les années suivantes.

Nous utiliserons les conventions suivantes :

Note importante : il est conseillé de tester les exemples de code au fur et à mesure, et de bien les comprendre avant de passer à la suite. Créer vos propres exemples aide aussi beaucoup à assimiler les nouvelles notions.

  1. Notions de base
    1. Présentation d’OCaml
    2. Premiers pas en OCaml
    3. Plus de types !
    4. Les fonctions
    5. Entraînement
  2. Conditions et pattern-matching
    1. if et else
    2. Le pattern-matching
    3. Entraînement
  3. Modéliser des données
    1. Un peu de théorie
    2. Les types synonymes
    3. Les types produits
    4. Les types sommes
    5. Bonus : les types structurés
    6. Entraînement
  4. Récursivité
    1. Fonctions récursives
    2. Les types récursifs
    3. Entraînement
  5. Coder, et bien coder
    1. Écrire une spécification
    2. Réaliser une mesure
    3. Autres bonnes pratiques
  6. Polymorphisme
    1. Polymorphisme
    2. Entraînement
  7. Ordre supérieur
    1. Ordre supérieur
    2. Curryfication
    3. Entraînement
  8. Le type list d’OCaml
    1. Le type list
    2. Le module List
    3. Entraînement
  9. Les arbres
    1. Qu’est-ce qu’un arbre ?
    2. Arbres binaires
    3. Entraînement
  10. Annexes
    1. Installer OCaml
    2. Configurer son éditeur pour OCaml
    3. Pour aller plus loin…

Si vous avez des remarques ou des suggestions, vous pouvez nous en faire part en écrivant un mail à ocaml arobase gelez point xyz.