Può avvenire solo se l'ultima istruzione della funzione è una fura chiamata alla funzione stessa.Originariamente inviato da rsdpzed
non sapevo si chiamasse cosi, volevo un nome per "questa cosa" in un post di ieri.
Questa ottimizzazione credo che esista solo per non caricare lo stack di variabili inutili che poi non verranno usate dai chiamanti (credo che non potrebbe avvenire se i chiamanti in qualche modo utilizzano poi i valori di ritorno e cioè sfruttano davvero il concetto di ricorsione), il che deriva comunque da codice non scritto bene. Con questa premessa sarebbe davvero brutto affidarsi a questa ottimizzazione per controllare un flusso: voto anch'io per il while![]()
Questa è la definizione di tail-recursion