2
次のコードは、ほぼ永遠に取ります理解Scalaのコレクションの実行
val r =(1 to 10000)
.map(_ => Seq.fill(10000)(0.0))
.map(_.size)
.sum
これは非常に高速ですが:
val r =(1 to 10000)
.map(_ => Seq.fill(10000)(0.0).size)
.sum
それはなぜですか?私はステートメントが実行される順序を理解していない。最初のケースでは、サイズ10000の最初の10000 Seqが作成され、次にサイズにマッピングされたすべてのSeqがありますか?または、それぞれのSeqが個別にサイズにマップされている(したがってガベージコレクションされていますか)?