Sobes.tech
Junior

Cos'è un comportamento ricorsivo?

sobes.tech AI

Risposta dell'AI

Esecuzione di codice o funzioni che si chiamano ricorsivamente.

Elementi principali:

  • Caso base: La condizione in cui la ricorsione si ferma. Senza di essa, la ricorsione sarebbe infinita.
  • Caso ricorsivo: La parte della funzione in cui si chiama se stessa, di solito con un argomento modificato.

Esempio (calcolo del fattoriale):

func factorial(_ n: Int) -> Int {
    // Caso base
    if n <= 1 {
        return 1
    }
    // Caso ricorsivo
    return n * factorial(n - 1)
}
// Esempio di chiamata
let result = factorial(5) // 120

Vantaggi:

  • Soluzione elegante per problemi con struttura auto-simile (ad esempio, attraversamento di alberi).
  • Codice più leggibile in alcuni casi.

Svantaggi:

  • Può consumare molta memoria (pila di chiamate).
  • Possibile overflow dello stack in ricorsioni troppo profonde.
  • A volte meno efficiente di soluzioni iterative.