Récursivité
Certains problèmes — arbres, fractales, brackets de tournoi — ne se résolvent pas proprement avec une boucle. La récursion décompose le problème en un cas de base et un appel réduit sur lui-même. En FP, cette décomposition remplace les variables muables d'une boucle par un accumulateur passé en paramètre, ce qui maintient la pureté des fonctions.
À l'issue de cette thématique, vous serez capable de :
- identifier un problème récursif et définir son cas de base
- écrire une fonction récursive avec accumulateur (sans variable muable)
- expliquer le lien entre récursion terminale et Fold
- parcourir une structure arborescente par récursion
Théorie
Particularités utiles pour les activités
La récursion impérative (fibonacci en procédural) repose souvent sur des variables muables et un état partagé. La version FP remplace cet état par un accumulateur en paramètre : chaque appel reçoit une valeur intermédiaire et la passe à l'appel suivant, sans jamais écrire dans une variable externe. Ce pattern est équivalent à un Aggregate (Fold) déroulé à la main — ce qui explique pourquoi Fold peut exprimer n'importe quelle récursion terminale.
Activités
Répondre aux besoins du fil rouge en enrichissant la bibliothèque DataSeries<T>.
Fil rouge
- 08-tournoi-recursion — Bracket de tournoi — analyser un bracket de tournoi par décomposition récursive — en enrichissant la bibliothèque