<div dir="ltr">Nota: mi hanno fatto notare in privato che all() e' lazy e non e' vero che comporta l'applicazione della trasformazione a tutti gli elementi della collezione (perche' non trasforma la collezione in toto, bensi' usa il generatore direttamente).<div>
<br></div><div>Ma tanto voi questo lo sapevate gia'. :)</div><div><br></div><div><div>Ciao,</div><div>Giuliano</div><div><br></div></div></div><div class="gmail_extra"><br><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"><div dir="ltr">Esempio 2<div>Come faccio a verificare che tutti gli elementi di una collezione verifichino lo stesso predicato? In Python devo prima applicare il predicato a tutti gli elementi e poi usare la funzione all(). In linguaggi come Ruby uso il metodo all? di enumerable direttamente (Scala e' analogo).</div>

<div><br></div><div>Python<br></div><div><div>>>> a = [2, 4, 8, 11]</div><div>>>> all(i % 2 == 0 for i in a)</div><div>False</div><div><br></div><div>Ruby (non testato):</div><div>
a = [2, 4, 8, 11]<br></div><div>a.all? {|i| i % 2 == 0}</div><div><br></div><div>In generale, la mia impressione e' che Enumerable per Ruby e tutta la libreria di collezioni "monstre" in Scala ti danno un sacco di modi per manipolare le tue collezioni che in scala devi costruirti a mano, partendo da all, len, map, reduce e i metodi di itertools. Nell'esempio di sopra, invece Python mi obbliga prima a mappare tutti i valori di una collezione e poi comporre la funzione desiderata. Ma se quella collezione e' grande e il predicato computazionalmente complesso all() comunque ci itera sopra nella sua interezza, giusto?</div>

<div><br></div><div>Dove sbaglio?</div><div><br></div><div>Ciao</div><div>Giuliano</div><div><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/9/17 Marco Beri <span dir="ltr"><<a href="mailto:marcoberi@gmail.com" target="_blank">marcoberi@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">2013/9/17 Piergiuliano Bossi <span dir="ltr"><<a href="mailto:pgbossi@gmail.com" target="_blank">pgbossi@gmail.com</a>></span><div>

<br><div class="gmail_extra"><div class="gmail_quote"><div><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 dir="ltr"><div>quando devo manipolare una collezione penso a quanto piu' facile e' in Ruby o Scala</div></div></blockquote><div><br></div></div><div>Giuliano,</div><div>magari puoi aggiungere due righe di codice per mostrare le differenze e la maggior facilitą di gestire una collezione in Ruby o Scala?</div>



<div><br></div><div>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.</div><div><br></div><div>Ciao.</div><div>Marco.</div><div>P.S. Ovviamente salto tutta la fase dei saluti ecc. visto che ci frequentiamo da anni (in fondo sei tu il protagonista di <a href="http://beri.it/2009/12/22/la-neve/" target="_blank">http://beri.it/2009/12/22/la-neve/</a> che mi ha fatto andare su Radio24 <a href="http://beri.it/2012/03/19/voi-siete-qui/" target="_blank">http://beri.it/2012/03/19/voi-siete-qui/</a>).</div>

<span><font color="#888888">

<div><br></div></font></span></div><span><font color="#888888">-- <br><div><div><div><div><a href="http://beri.it/" target="_blank">http://beri.it/</a> - Un blog</div><div><a href="http://beri.it/i-miei-libri/" target="_blank">http://beri.it/i-miei-libri/</a> - Qualche libro</div>



<div><br></div></div></div></div>
</font></span></div></div></div>
<br></div></div><div class="im">_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it" target="_blank">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
<br></div></blockquote></div><br><br clear="all"><div class="im"><div><br></div>-- <br>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>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>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>