Nei linguaggi funzionali in genere si ma in Python no.Grazie!!Adesso finalmente sono riuscito a capire. Ma l'utilizzo di funzioni ricorsive è frequente nella programmazione?
In Python la ricorsione è lenta ed in genere evitata come la peste preferendo l'iterazione al suo posto.
Personalmente, sebbene sappia la teoria che sta alla base, ogni volta che vedo una funzione ricorsiva ci devo spendere un po' di tempo per comprenderla.
Anche se questo può sembrare più ordinato e leggibile:
...preferisco di gran lunga questo:codice:def fattoriale(n): if n == 0: return 1 return n * fattoriale(n - 1)
...del resto "explicit is better than implicit" (cit. dallo Zen di Python), e per come la vedo io tra le due funzioni la prima non è esplicita quanto la seconda.codice:def fattoriale(n): result = 1 factor = 2 while factor <= n: result *= factor factor += 1 return result

Rispondi quotando