Creare una funzione ricorsiva in javascript

Il linguaggio javascript mi permette di creare anche funzioni ricorsive.

In questo modo posso realizzare programmi basati sulla programmazione funzionale.

Cos'è una funzione ricorsiva? E' una funzione che richiama se stessa più volte. Ogni chiamata (invocazione) è una ricorsione. L'ultima chiamata chiude le ricorsioni facendo tornare indietro il risultato.

Ecco un esempio pratico di funzione ricorsiva sviluppata in javascript.

function fattoriale(n) {
var fatt=1;
if (n<=0) {
return(-1);
}
if (n==1) return(n);
fatt=n*fattoriale(n-1);
return(fatt);
}

Questo script calcola il fattoriale di un numero in modo ricorsivo.

Ad esempio, invoco la funzione fattoriale() passandogli un numero intero n=5

var f;
f=fattoriale(5);
document.write(f)

La funzione fattoriale(5) richiama se stessa tramite l'invocazione fattoriale(4)

A sua volta l'invocazione fattoriale(4) invoca l'esecuzione di fattoriale (3). E via dicendo.

Quando la chiamata è fattoriale(1) il programma non invoca più se stessa e chiude a ritroso tutte le ricorsioni aperte.

fatt = 5*fattoriale(4)*fattoriale(3)*fattoriale(2)*fattoriale(1)
fatt = 5*fattoriale(4)*fattoriale(3)*fattoriale(2)*1
fatt = 5*fattoriale(4)*fattoriale(3)*2*1
fatt = 5*fattoriale(4)*3*2
fatt = 5*4*6
fatt = 120

Alla fine restituisce il fattoriale di cinque ossia 5!=120

120

E così via.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Javascript

Le strutture di controllo

Gestione degli errori ed eccezioni

Le strutture cicliche

FAQ