<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2013/9/17 Piergiuliano Bossi <span dir="ltr"><<a href="mailto:pgbossi@gmail.com" target="_blank">pgbossi@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Detto cio', non mi puoi dire seriamente che la versione con la comprehension e' altrettanto comunicativa: il problema non e' capirla in toto, il problema e' che devi leggerti tutta la comprehension per sapere se otterrai una collezione con la stessa numerosita', se stai trasformando gli elementi o cosa. Se inveci usi filter, map, ecc. lo sai al volo, non devi leggere il dettaglio della trasformazione. Questo e' il nocciolo di come manipolare le collezioni che deriva dal mondo Smalltalk.</blockquote>
</div><br>Il fatto e' che si comunica almeno in due, dopotutto. Quindi dipende a chi comunichi.</div><div class="gmail_extra">Personalmente a me le list comprehension piacciono molto, perche' le trovo estremamente dichiarative, molto piu' dichiarative dei classici funzionali a botte di map e filter. Le LC hanno anche il marginale vantaggio che mantengono leggibilita' relativa anche quando le cose si complicano un pochetto. Quando si complicano molto, richiedono una refattorizzazione banale che riporta la leggibilita' a livelli elementari (usando generatore e predicato con nome).</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">In realta' questi sono esempi relativamente giocattolo in cui avere una lambda coincisa sembra un vantaggio competitivo notevole. </div><div class="gmail_extra">
Pero' nella maggior parte del codice che ho scritto, mi sono relativamente di rado trovato ad usare, per esempio, predicati o funzioni mappate che non avessero senso definite in modo stabile.</div><div class="gmail_extra">
<br></div><div class="gmail_extra">In particolare, tu hai acchiappato il caso in cui le LC sono piu' sfortunate, quello in cui le usi per filter *senza* map.</div><div class="gmail_extra"><br></div><div class="gmail_extra">
<br></div><div class="gmail_extra"><br><br clear="all"><div><br></div>-- <br> .<br>..: -enrico-
</div></div>