Nous commençons par une keynote de 30 à 40 minutes : l’organisation du module, Erlang et Elixir, quelques usages de la plateforme, puis la vérification de Livebook, installé avant la séance, et nos premiers bouts de code. Nous ne ferons pas tout le cours de syntaxe dans les slides avant de le recommencer.

Nous suivons ensuite cinq carnets, dans l’ordre et un par étape. Je projette le même carnet que vous ; nous alternons explications, essais et corrections au fil de l’eau. Les cinq étapes conduisent des expressions aux fonctions et aux motifs, à la récursion, puis aux chaînes et à une petite calculatrice à pile. Chaque nouvelle forme apparaît au moment où elle devient utile, et chaque carnet est autonome : une nouvelle session Livebook suffit.

Vous connaissez déjà Python, NumPy et pandas. Nous allons surtout travailler les habitudes qui changent : valeurs immuables, choix d’une clause par motif, listes décomposées et état transmis explicitement. Prédisez un résultat avant de l’exécuter, puis cherchez un exemple qui pourrait révéler un souci dans votre solution. Une explication de votre correction fait partie du travail.

Pour notre calculatrice, nous lirons 8 3 - 2 *. L’ordre des opérandes, la pile vide ou un symbole incorrect obligent à préciser ce que chaque fonction accepte et renvoie. En AP2, nous voudrons écrire (8.0 - 3.0) * 2.0 : les mêmes méthodes serviront, avec de nouvelles questions sur la grammaire.

Le sixième carnet est un prolongement facultatif pour ceux qui ont terminé la calculatrice. Les six petits ateliers de réserve servent à reprendre une difficulté précise, pas six devoirs supplémentaires. Les chapitres 1 à 4 du poly restent disponibles pour retrouver une forme oubliée. La boucle complète de la calculatrice pourra être construite ensemble selon notre rythme ; les transitions de pile sont le premier objectif.

Sauvegardez chaque carnet dans AP1/, sous son nom, par ex. AP1/ap1-01-expressions.livemd. Ces fichiers contiennent directement votre code et vos explications. Je préciserai en séance le point d’arrêt attendu ; les entraînements facultatifs restent dans entrainement/.

Aucun travail à la maison n’est demandé avant AP2. Les carnets font partie du rendu unique AP1–AP3, le dimanche 6 décembre 2026 à 23 h 59. Nous en reparlerons à l’oral en AP4 ; cf. Rendre un devoir.

Ouvrir les ateliers

1. Des expressions, des noms et des résultats

Prédire ce qu’une cellule renvoie, donner un nom à une valeur sans la modifier, puis fabriquer un premier résultat étiqueté {:ok, 21}.

Environ 20 min · poly, chap. 1.

Run in LivebookTélécharger le .livemd

2. Des fonctions qui reconnaissent leurs arguments

Un module et une fonction complète, puis des clauses dont les paramètres sont des motifs. Où placer le cas général ?

Environ 25 min · poly, chap. 2 et 4.

Run in LivebookTélécharger le .livemd

3. Parcourir une liste en sachant où nous en sommes

Tête et reste, compter puis sommer par récurrence, transporter un accumulateur et reconnaître un appel terminal.

Environ 25 min · poly, chap. 3 et 4.

Run in LivebookTélécharger le .livemd

4. Lire une chaîne sans perdre ce qui reste

String.split, Integer.parse et case, puis votre premier lecteur de tokens et un préfixe reconnu par motif.

Environ 25 min · poly, chap. 1 à 3.

Run in LivebookTélécharger le .livemd

5. Faire vivre une pile, puis une calculatrice

Les transitions de pile, point de passage de la séance, puis la boucle qui relie vos briques sans cacher les erreurs.

Environ 35 min · poly, chap. 4, section 4.5.

Run in LivebookTélécharger le .livemd