For-Comprehensions
Range Comprehension
Compute values across a numeric range.
range-comprehension
A `for` over a range like `1 to stop` yields one result per number. Here it collects the squares into a new list.
Range Comprehension
RangeComprehension.scala
Replay: real traced execution (multi-file project)
object Main {
def main(args: Array[String]): Unit = {
val stop = 3
val squares = for (i <- 1 to stop) yield i * i
val text = squares.mkString(",")
println("count=" + squares.length)
println("text=" + text)
}
}
object Main {
def main(args: Array[String]): Unit = {
val stop = 4
val squares = for (i <- 1 to stop) yield i * i
val text = squares.mkString(",")
println("count=" + squares.length)
println("text=" + text)
}
}
object Main {
def main(args: Array[String]): Unit = {
val stop = 5
val squares = for (i <- 1 to stop) yield i * i
val text = squares.mkString(",")
println("count=" + squares.length)
println("text=" + text)
}
}
stop ← 3, squares ← Vector(1, 4, 9), text ← 1,4,9
1object Main {2 def main(args: Array[String]): Unit = {3 val stop→ 3 = 3 //@stop=4, 54 val squares→ Vector(1, 4, 9) = for (i <- 1 to stop3) yield i * i5 val text→ 1,4,9 = squaresVector(1, 4, 9).mkString(",")67 println("count=" + squares.length3)8 println("text=" + text1,4,9)9 }10}outputcount=3 text=1,4,9
stop ← 4, squares ← Vector(1, 4, 9, 16), text ← 1,4,9,16
1object Main {2 def main(args: Array[String]): Unit = {3 val stop→ 4 = 44 val squares→ Vector(1, 4, 9, 16) = for (i <- 1 to stop4) yield i * i5 val text→ 1,4,9,16 = squaresVector(1, 4, 9, 16).mkString(",")67 println("count=" + squares.length4)8 println("text=" + text1,4,9,16)9 }10}outputcount=4 text=1,4,9,16
stop ← 5, squares ← Vector(1, 4, 9, 16, 25), text ← 1,4,9,16,25
1object Main {2 def main(args: Array[String]): Unit = {3 val stop→ 5 = 54 val squares→ Vector(1, 4, 9, 16, 25) = for (i <- 1 to stop5) yield i * i5 val text→ 1,4,9,16,25 = squaresVector(1, 4, 9, 16, 25).mkString(",")67 println("count=" + squares.length5)8 println("text=" + text1,4,9,16,25)9 }10}outputcount=5 text=1,4,9,16,25