On Thu, Dec 5, 2013 at 4:12 PM, Daniele Varrazzo <p...@develer.com> wrote: > penso funzioni anche: > > def depth(tree): > return 1 + max((depth(t) for t in tree), 0)
no, max(...) max(iterable[, key=func]) -> value max(a, b, c, ...[, key=func]) -> value With a single iterable argument, return its largest item. With two or more arguments, return the largest argument. non puoi mischiare i 2 modi nei quali viene chiamato la cosa bella di map(), è che in python3 è lazy rinunciandoci, ed usando python2 (oppure usando itertools.chain) è però possibile scrivere def height(tree): return 1 + max([0]+map(height, tree)) 2013/12/5 Federico Caboni <federico.cab...@python-academy.de>: > > Il giorno 05/dic/2013, alle ore 15:07, De Santis Luca <faro...@hotmail.com> > ha scritto: > > Effettivamente è molto compatta ed elegante, non conoscevo la funzione > map(), praticamente è una forma più compatta di yield se non ho capito male > . > > > No: sono due cose diverse. > yield serve per creare un generatore, ovvero un tipo di particolare di > funzione che mantiene (yield=mantenere) lo stato tra una chiamata e l’altro, > ritornando un valore nuovo ad ogni sollecitazione (pensa a come si comporta > xrange, per esempio). yield ha più il significato di "dare", "restituire", "fornire" più che di "mantenere" https://en.wiktionary.org/wiki/yield#Verb io lo vedo come un return che "restituisce valori senza ritornare" -- xmpp: berda...@gmail.com bitmessage: BM-2cTYXfGiSTsnx3righ6aHcJSWe4MV17jDP gpg fingerprint: 3F8D53518012716C4EEF7DF67B498306B3BF75A0 (used just for signing commits) _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python