2013/9/17 Piergiuliano Bossi <pgbo...@gmail.com> > 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.
Il fatto e' che si comunica almeno in due, dopotutto. Quindi dipende a chi comunichi. 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). In realta' questi sono esempi relativamente giocattolo in cui avere una lambda coincisa sembra un vantaggio competitivo notevole. 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. In particolare, tu hai acchiappato il caso in cui le LC sono piu' sfortunate, quello in cui le usi per filter *senza* map. -- . ..: -enrico-
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python