Ok mi sembra di aver capito….
Sembra anche decisamente piu veloce delle funzioni ricorsive con return…. cfr: https://gist.github.com/3082523 sulla mia macchina, con generator: 0.0001380443573 seconds con funzione ricorsiva: 0.908564090729 seconds che come test fa un po schifo, ma rende l'idea Fico! Grazie! Davide On Jul 10, 2012, at 11:41 AM, enrico franchi wrote: > > > 2012/7/10 Davide Rambaldi <davide.ramba...@gmail.com> > > Ma non viene descritto in Dive into Python (almeno non nei primi11 capitoli > che mi sono sparato) > > Direi che quel libro e' vecchio come il cucco... > > > > Che funzione ha? > > Implementare anamorfismi con sintassi e semantica imperative... > > > Ad occhio mi sembra più simile ad uno strumento per fare iteration in > strutture dati (stile STL in C++) > > E' uno strumento per fare iterazione (fra le varie cose). Anzi... direi per > fare *generazione*. E di fatto non e' particolarmente legato al concetto di > struttura dati, anzi, essenzialmente e' completamente ortogonale. Che poi > funzioni bene anche con le strutture dati e' ovviamente un'altra questione. > > In pratica una funzione che contiene yield diventa "magica". Invece di > ritornare un valore, ritorna un generatore. > Quando tu cerchi di ottenere un elemento dal generatore, lui esegue il corpo > della funzione fino a trovare uno yield e poi ritorna il valore yieldato. > Quando gli chiedi un altro valore, lui riparte da dove era arrivato e va fino > al successivo. Quando la cosa termina, lancia StopIteration. > > Per dire... puoi usare la cosa sia per fare un affare che ti fa visite su un > grafo, sia un coso che ti genera tutti i primi (ovviamente un numero > arbitrariamente grande di essi, tutti no poiche' sono infiniti). > > Come lo utilizzate in python? > > Generatori, coroutines, lazyness, concorrenza, cornetto & cappuccino. > > > -- > . > ..: -enrico- > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python