[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