Na oficjalnej stronie z dokumentacją (np: przykład 1.) znalazłem informację że pętla :
for(x <- c1; y <- c2; z <-c3) {...}
jest zamieniana pod powłoką na coś takiego :
c1.foreach(x => c2.foreach(y => c3.foreach(z => {...})))
Coś mi nie pasowało i przeprowadziłem eksperyment:
for(i <- 1 until 4; _ = println("i = " + i); j <- 1 until 3; _ = println("j = " + j)) {}
i = 1 i = 2 i = 3 j = 1 j = 2 j = 1 j = 2 j = 1 j = 2
(1 until 4).foreach(i =>
{println("i = " + i); (1 until 3).foreach(j =>
{println("j = " + j)})})
i = 1 j = 1 j = 2 i = 2 j = 1 j = 2 i = 3 j = 1 j = 2
Sposób działania obu metod jest różny czy czegoś nie rozumiem ?