2013/9/17 Lorenzo Sutton <lorenzofsut...@gmail.com> > > Domanda, forse naive. A parte la soddisfazione/divertimento di costruire > dei one-liner qual è il vero vantaggio di tale super-sinteticità? perché > non scrivere il codice "per esteso"? Esempio: > > >>> number_list = [2, -4, 27, 44, 13, 0] > >>> up_limit = 5 > >>> counter = 0 > >>> for i in number_list: > ... if i > up_limit: > ... counter += 1 > ... > >>> counter > 3 > > Inserito in un contesto più complesso, così non un po' più chiaro? > > :D
N risposte, tutte vere dal mio punto di vista, alcune estremamente soggettive: 1) 1000 anni di lavoro in Java ti portano a idolatrare la sinteticita' e detestare la verbosita' 2) meno codice scrivo e meno bugs ho 3) meno codice scrivo e piu' devo alzare il livello di astrazione e piu' alzo anche il livello di riuso 4) non so perche', ma io veramente capisco piu' facilmente e piu' velocemente il seguente (in Scala) rispetto a quello che hai scritto tu: a.count(_ > 5) Non escludo di scrivermi una count che prende una collezione e un predicato e scrivere (in Python) count(lambda x: x > 5, a) Oppure rassegnarmi con: len([x for x in a if x > 5]) Domanda di riserva: non c'e' una len() che funziona direttamente sul generatore e non richieda di costruire una lista? Trovo il seguente abbastanza orrido: sum(1 for x in generator) Vedi http://stackoverflow.com/questions/7460836/how-to-lengenerator Ciao Giuliano -- Piergiuliano Bossi Blog: http://thinkingbox.wordpress.com/ Twitter: http://twitter.com/thinkingbox (English) Twitter: http://twitter.com/scatolapensante (Italiano) Google+: https://plus.google.com/u/0/108187981162465525118
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python