Skip to main content

Cos'è una ricorsione di coda?

La ricorsione della coda è un tipo di chiamata metodo di programmazione in cui un metodo si chiama, quindi restituisce immediatamente il valore di quella seconda chiamata.In altre parole, la ricorsione della coda si verifica quando l'istruzione finale all'interno di un metodo è un'altra chiamata allo stesso metodo.I parametri nella seconda chiamata del metodo sono generalmente diversi da quelli della prima, ma questo non è necessario.Affinché questa ricorsione funzioni, il metodo che viene chiamato al suo interno deve restituire un valore concreto, come un numero, una stringa o qualche altro oggetto.I metodi vuoti, che non restituiscono un valore, non funzionano bene per la ricorsione.

Il requisito che una chiamata ricorsiva deve essere l'ultima affermazione nel suo metodo di chiamata non significa necessariamente che la chiamata ricorsiva sia l'ultima riga del metodo.Una chiamata di ricorsione di coda adeguata può anche essere trovata all'interno di una struttura di controllo, il che significa che, nel codice sorgente, la struttura di controllo può porre fine al metodo anziché alla chiamata.L'importante distinzione in questo caso è che una struttura di controllo non è una dichiarazione di programmazione, ma una parte integrata del linguaggio del computer. La ricorsione della coda esiste in molti linguaggi di computer, tra cui Java e C ++.Spesso, queste chiamate ricorsive possono essere riscritte usando altri mezzi, ad esempio per loop, mentre loop o dichiarazioni GOTO.L'utilità di ricorsione viene trovata quando si crea molte chiamate sequenziali allo stesso metodo.La ricorsione è spesso il modo più pulito e semplice per svolgere compiti ripetitivi.

Un esempio comune di ricorsione della coda è un metodo che calcola il fattoriale di un numero.Questo processo è ideale perché, a partire da qualsiasi numero, ogni numero prima di essere moltiplicato insieme.Quindi, per trovare il fattoriale di 5, il processo corretto da fare sarebbe moltiplicare 5*4*3*2*1.La ricorsione arriva a causa di come è strutturato il metodo fattoriale: se il fattoriale è 1, restituzione 1, altrimenti restituire il fattoriale del numero dato al metodo meno uno.Questo metodo è utile anche perché può essere scritto equivalentemente usando entrambi i tipi di ricorsione della coda, con o senza un'istruzione di controllo attorno a una chiamata del metodo finale. La ricorsione della coda è solo un esempio di molteplici tipi di ricorsione.Il concetto in tutti i tipi di ricorsione è essenzialmente lo stesso, che in qualche modo un metodo si chiama.Di questi tipi, la distinzione della ricorsione della coda è che il valore di una chiamata ricorsiva viene immediatamente restituito e nient'altro accade nel metodo chiamante dopo quella chiamata.