Quando ho valutare un for
in Scala, ottengo una immutabile IndexedSeq
(un insieme con caratteristiche array come prestazioni, come l'accesso casuale efficiente):tipo Collection generato da per con resa
scala> val s = for (i <- 0 to 9) yield math.random + i
s: scala.collection.immutable.IndexedSeq[Double] = Vector(0.6127056766832756, 1.7137598183155291, ...
Esiste una for
con un yield
restituisce sempre un IndexedSeq
oppure può anche restituire un altro tipo di classe di raccolta (ad esempio LinearSeq
)? Se può anche restituire qualcos'altro, allora cosa determina il tipo di ritorno e come posso influenzarlo?
Sto usando Scala 2.8.0.RC3.
Dai un'occhiata alla http://stackoverflow.com/questions/1052476/can-someone-explain-scalas-yield/1059501 # 1059501 e http://stackoverflow.com/questions/1721356/scala-2-8-canbuildfrom –