Iterazione e ricorsione

damianormaximus
Salve a tutti.
Volevo sapere se esiste un metodo generale per passare da un processo iterativo ad uno ricorsivo e viceversa.
Ho letto su internet che è sempre possibile farlo ma non capisco come.
Ho anche trovato un sacco di esempi, ma cercavo una soluzione generale.
Saluti a tutti.

Risposte
Luc@s
Un metodo generale non c'è.
Basta che svolgi la parte ricorsiva in cicli while/for/untill o quello che offre il linguaggio per i cicli.


My 2 cents

apatriarca
In realtà un metodo generale esiste. Non è però necessariamente comodo da applicare o definire. La trasformazione generale da ricorsivo a iterativo richiede infatti di definire in modo esplicito lo stack delle funzioni, mentre quello da iterativo a ricorsivo di passare le variabili che vengono aggiornate all'interno del ciclo come argomenti della funzione. Entrambe le trasformazioni sono molto probabilmente non ottimali quando applicate ad un particolare algoritmo ed è probabilmente la ragione perpre cui vengono per lo più ignorate. Di fatto, a meno di particolari circostanze, conviene esprimere l'algoritmo nella forma in cui è più semplice farlo. Se la difficoltà è uguale, l'iterazione è preferibile.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.