Rekurencja w programowaniu funkcyjnym

Koncepcje paradygmatów programowania

Eleanor Thomas

Senior Data Analytics Engineer

Czym jest rekurencja?

  • Funkcja rekurencyjna: funkcja, która wywołuje samą siebie
  • Musi zawierać warunek zakończenia, zwany przypadkiem bazowym
  • Zawiera wywołanie rekurencyjne z zmodyfikowanym argumentem
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
Koncepcje paradygmatów programowania

Kiedy używać rekurencji?

  • Niektóre problemy łatwiej opisać rekurencyjnie
  • Liczby Fibonacciego:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
Koncepcje paradygmatów programowania

Więcej przykładów rekurencji

System plików

  • Przeszukiwanie systemu plików
Koncepcje paradygmatów programowania

Więcej przykładów rekurencji

System plików; metoda sortowania

  • Przeszukiwание systemu plików
  • Wybrane algorytmy sortowania, np. Merge Sort
Koncepcje paradygmatów programowania

Więcej przykładów rekurencji

System plików; metoda sortowania; struktura danych

  • Przeszukiwanie systemu plików
  • Wybrane algorytmy sortowania, np. Merge Sort
  • Różne struktury danych definiowane rekurencyjnie
Koncepcje paradygmatów programowania

Rekurencja a iteracja

  • Każdą funkcję rekurencyjną można zapisać iteracyjnie
  • Funkcja iteracyjna używa pętli zamiast wywołania rekurencyjnego
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
Koncepcje paradygmatów programowania

Czas na ćwiczenia!

Koncepcje paradygmatów programowania

Preparing Video For Download...