Coursera の Scala コースに続いて、Martin Odersky 氏は次のようなサンプル コードを示しました。
1 to 5 map ( i => i*i )
そして彼は、Range
が に変換されるのはVector
、それらが同じインターフェース ( IndexedSeq
) を共有し、結果を として表現できないためだと言いましたRange
(彼が として表現できないペアを生成したので、その例ではより明確でしたRange
)。
for 式では、最初のジェネレーターが生成される要素の種類を決定し、少なくともRange
.
上記で計算された結果を表すことができる唯一の他の実装ではない可能性があるVector
ため、出力が である理由を理解できません。Vector
誰かがこの部分を理解するのを手伝ってくれますか?