<div dir="ltr">2013/9/17 Lorenzo Sutton <span dir="ltr"><<a href="mailto:lorenzofsutton@gmail.com" target="_blank">lorenzofsutton@gmail.com</a>></span><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class="im"><br></div>
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:<br>
<br>
>>> number_list = [2, -4, 27, 44, 13, 0]<br>
>>> up_limit = 5<br>
>>> counter = 0<br>
>>> for i in number_list:<br>
...     if i > up_limit:<br>
...         counter += 1<br>
...<br>
>>> counter<br>
3<br>
<br>
Inserito in un contesto più complesso, così non un po' più chiaro?<br>
<br></blockquote><div><br></div><div>:D</div><div><br></div><div>N risposte, tutte vere dal mio punto di vista, alcune estremamente soggettive:</div><div>1) 1000 anni di lavoro in Java ti portano a idolatrare la sinteticita' e detestare la verbosita'</div>
<div>2) meno codice scrivo e meno bugs ho</div><div>3) meno codice scrivo e piu' devo alzare il livello di astrazione e piu' alzo anche il livello di riuso</div><div>4) non so perche', ma io veramente capisco piu' facilmente e piu' velocemente il seguente (in Scala) rispetto a quello che hai scritto tu:</div>
<div>    a.count(_ > 5)</div><div>Non escludo di scrivermi una count che prende una collezione e un predicato e scrivere (in Python)</div><div>    count(lambda x: x > 5, a)</div><div>Oppure rassegnarmi con:</div><div>
    len([x for x in a if x > 5])</div></div><div><br></div><div>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:</div>
<div>    sum(1 for x in generator)</div><div><br></div><div>Vedi <a href="http://stackoverflow.com/questions/7460836/how-to-lengenerator">http://stackoverflow.com/questions/7460836/how-to-lengenerator<br></a><br></div><div>
Ciao</div><div>Giuliano</div><div><br></div><div>-- </div>Piergiuliano Bossi<br>Blog: <a href="http://thinkingbox.wordpress.com/" target="_blank">http://thinkingbox.wordpress.com/</a><br>Twitter: <a href="http://twitter.com/thinkingbox" target="_blank">http://twitter.com/thinkingbox</a> (English)<br>
Twitter: <a href="http://twitter.com/scatolapensante" target="_blank">http://twitter.com/scatolapensante</a> (Italiano)<br><div>Google+: <a href="https://plus.google.com/u/0/108187981162465525118" target="_blank">https://plus.google.com/u/0/108187981162465525118</a></div>

</div></div>