Ricorsione nella programmazione funzionale

Concetti dei paradigmi di programmazione

Eleanor Thomas

Senior Data Analytics Engineer

Cos'è la ricorsione?

  • Funzione ricorsiva: funzione che chiama se stessa
  • Deve avere una condizione di termine (base case)
  • Contiene anche la chiamata ricorsiva con input modificato
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
Concetti dei paradigmi di programmazione

Perché usare la ricorsione?

  • Alcuni problemi sono più semplici se definiti in modo ricorsivo
  • Numeri di Fibonacci:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
Concetti dei paradigmi di programmazione

Altri esempi di ricorsione

Un file system

  • Ricerca in un file system
Concetti dei paradigmi di programmazione

Altri esempi di ricorsione

Un file system; un metodo di ordinamento

  • Ricerca in un file system
  • Alcuni algoritmi di ordinamento, come Merge Sort
Concetti dei paradigmi di programmazione

Altri esempi di ricorsione

Un file system; un metodo di ordinamento; una struttura dati

  • Ricerca in un file system
  • Alcuni algoritmi di ordinamento, come Merge Sort
  • Diverse strutture dati sono definite ricorsivamente
Concetti dei paradigmi di programmazione

Ricorsione vs iterazione

  • Ogni funzione ricorsiva può essere scritta anche in modo iterativo
  • Una funzione iterativa usa un ciclo invece di una chiamata ricorsiva
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
Concetti dei paradigmi di programmazione

Ayo berlatih!

Concetti dei paradigmi di programmazione

Preparing Video For Download...