Recursie in functioneel programmeren

Concepten van programmeerparadigma’s

Eleanor Thomas

Senior Data Analytics Engineer

Wat is recursie?

  • Recursieve functie: een functie die zichzelf aanroept
  • Moet een stopconditie of basisgeval bevatten
  • Bevat ook de recursieve aanroep met aangepaste 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
Concepten van programmeerparadigma’s

Waarom recursie gebruiken?

  • Sommige problemen zijn eenvoudiger recursief te definiëren
  • Fibonacci-getallen:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
Concepten van programmeerparadigma’s

Meer voorbeelden van recursie

Een bestandssysteem

  • Zoeken in een bestandssysteem
Concepten van programmeerparadigma’s

Meer voorbeelden van recursie

Een bestandssysteem; een sorteermethode

  • Zoeken in een bestandssysteem
  • Bepaalde sorteeralgoritmes, zoals Merge Sort
Concepten van programmeerparadigma’s

Meer voorbeelden van recursie

Een bestandssysteem; een sorteermethode; een datastructuur

  • Zoeken in een bestandssysteem
  • Bepaalde sorteeralgoritmes, zoals Merge Sort
  • Diverse datastructuren zijn recursief gedefinieerd
Concepten van programmeerparadigma’s

Recursie versus iteratie

  • Elke recursieve functie kan ook iteratief worden geschreven
  • Een iteratieve functie gebruikt een lus in plaats van een recursieve aanroep
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
Concepten van programmeerparadigma’s

Laten we oefenen!

Concepten van programmeerparadigma’s

Preparing Video For Download...