Sto per fare due ipotesi. Per favore correggimi se hanno torto:
- Non esiste un algoritmo ricorsivo senza un equivalente iterativo.
- L'iterazione è sempre più economica in termini di prestazioni rispetto alla ricorsione (at almeno in linguaggi di uso generale come Java, C ++, Python ecc.).
Se è vero che la ricorsione è sempre più costosa dell'iterazione e che può sempre essere sostituita da un algoritmo iterativo (nelle lingue che lo consentono) - penso che i due motivi rimanenti per usare la ricorsione siano: l'eleganza e la leggibilità .
Alcuni algoritmi sono espressi in modo più elegante con la ricorsione. Per esempio. scansione di un albero binario.
Tuttavia, a parte questo, ci sono dei motivi per usare la ricorsione sull'iterazione? La ricorsione ha vantaggi rispetto all'iterazione se non a volte l'eleganza e la leggibilità?