Récursion en programmation fonctionnelle

Concepts de paradigmes de programmation

Eleanor Thomas

Senior Data Analytics Engineer

Qu'est-ce que la récursion ?

  • Fonction récursive : une fonction qui s'appelle elle-même
  • Doit inclure une condition d'arrêt (cas de base)
  • Contient aussi l'appel récursif avec une entrée modifiée
0 | def my_recursive_function(input_value):
1 |     # base case
2 |     if base_case_condition:
3 |        return base_case_output_value
4 |     # recursive call
5 |     else:
6 |        return my_recursive_function(modified_input_value) + some_modification
Concepts de paradigmes de programmation

Pourquoi utiliser la récursion ?

  • Certains problèmes sont plus simples à définir récursivement
  • Nombres de Fibonacci :
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
Concepts de paradigmes de programmation

D'autres exemples de récursion

Un système de fichiers

  • Parcourir un système de fichiers
Concepts de paradigmes de programmation

D'autres exemples de récursion

Un système de fichiers ; une méthode de tri

  • Parcourir un système de fichiers
  • Certains algorithmes de tri, comme Merge Sort
Concepts de paradigmes de programmation

D'autres exemples de récursion

Un système de fichiers ; une méthode de tri ; une structure de données

  • Parcourir un système de fichiers
  • Certains algorithmes de tri, comme Merge Sort
  • Plusieurs structures de données sont définies récursivement
Concepts de paradigmes de programmation

Récursion ou itération

  • Toute fonction récursive peut aussi s'écrire de façon itérative
  • Une fonction itérative utilise une boucle plutôt qu'un appel récursif
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
Concepts de paradigmes de programmation

Passons à la pratique !

Concepts de paradigmes de programmation

Preparing Video For Download...