Rekursion in der funktionalen Programmierung

Konzepte von Programmierparadigmen

Eleanor Thomas

Senior Data Analytics Engineer

Was ist Rekursion?

  • Rekursive Funktion: ruft sich selbst auf
  • Muss eine Abbruchbedingung (Basisfall) haben
  • Enthält außerdem den rekursiven Aufruf mit geändertem Input
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
Konzepte von Programmierparadigmen

Warum Rekursion?

  • Manche Probleme sind rekursiv einfacher zu definieren
  • Fibonacci-Zahlen:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
Konzepte von Programmierparadigmen

Weitere Beispiele für Rekursion

Ein Dateisystem

  • Durch ein Dateisystem suchen
Konzepte von Programmierparadigmen

Weitere Beispiele für Rekursion

Ein Dateisystem; ein Sortierverfahren

  • Durch ein Dateisystem suchen
  • Bestimmte Sortieralgorithmen wie Merge Sort
Konzepte von Programmierparadigmen

Weitere Beispiele für Rekursion

Ein Dateisystem; ein Sortierverfahren; eine Datenstruktur

  • Durch ein Dateisystem suchen
  • Bestimmte Sortieralgorithmen wie Merge Sort
  • Manche Datenstrukturen sind rekursiv definiert
Konzepte von Programmierparadigmen

Rekursion vs. Iteration

  • Jede rekursive Funktion lässt sich auch iterativ schreiben
  • Iterativ nutzt man eine Schleife statt eines rekursiven Aufrufs
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
Konzepte von Programmierparadigmen

Lass uns üben!

Konzepte von Programmierparadigmen

Preparing Video For Download...