Esempio 1 I lambda in python sono verbosi e visto che i vari map, reduce, filter, ... non sono metodi della collezione, si compongono in modo che io percepisco come innaturale. Ad esempio, diciamo che abbiamo un array di interi e vogliamo somarne i cubi.
Ruby: >> a = [1, 7, 22, 3] => [1, 7, 22, 3] >> a.map{|x| x*x*x }.reduce{|sum, x| sum + x} => 11019 Scala: scala> val a = Array(1, 7, 22, 3) a: Array[Int] = Array(1, 7, 22, 3) scala> a.map(x => x*x*x).reduce((sum, x) => sum+x) res1: Int = 11019 Python: >>> a = [1, 7, 22, 3] >>> reduce(lambda sum, x: sum+x, map(lambda x: x*x*x, a)) 11019 Rendo l'idea? Python non solo e' il piu' verboso (perche' devi ripetere "lambda"), ma non ti consente di comporre i metodi naturalmente (in questo python e' piu' FP-oriented degli altri, ma faccio piu' fatica a leggerlo, immaginatevi di comporre 4 o 5 manipolazioni o piu', che e' una cosa che si fa abbastanza naturalmente in Scala o Ruby (o Smalltalk, che poi e' il precursore di questo stile). Ciao Giuliano PS: vi da' fastidio il top posting per una cosa cosi'? PPS: so che Python ha la funzione sum(), immaginatevi un'altra operazione analoga che abbia senso con una reduce... :) 2013/9/17 Marco Beri <marcob...@gmail.com> > 2013/9/17 Piergiuliano Bossi <pgbo...@gmail.com> > > quando devo manipolare una collezione penso a quanto piu' facile e' in >> Ruby o Scala >> > > Giuliano, > magari puoi aggiungere due righe di codice per mostrare le differenze e la > maggior facilità di gestire una collezione in Ruby o Scala? > > Se posso capire i conati per il self non riesco davvero a immaginare un > modo molto più facile per gestire le collezioni di quello di Python. > > Ciao. > Marco. > P.S. Ovviamente salto tutta la fase dei saluti ecc. visto che ci > frequentiamo da anni (in fondo sei tu il protagonista di > http://beri.it/2009/12/22/la-neve/ che mi ha fatto andare su Radio24 > http://beri.it/2012/03/19/voi-siete-qui/). > > -- > http://beri.it/ - Un blog > http://beri.it/i-miei-libri/ - Qualche libro > > > _______________________________________________ > Python mailing list > Python@lists.python.it > http://lists.python.it/mailman/listinfo/python > > -- 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