[Python] richiesta di informazioni.
Davide Rambaldi
davide.rambaldi a gmail.com
Mar 10 Lug 2012 12:29:19 CEST
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.rambaldi a 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 a lists.python.it
> http://lists.python.it/mailman/listinfo/python
-------------- parte successiva --------------
Un allegato HTML č stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120710/64f645ab/attachment.html>
Maggiori informazioni sulla lista
Python