Standard Library Utilities
Tabulate Values
Create a small list from indexes.
tabulate
`List.tabulate(n)` calls a function for each index from `0` to `n - 1`. It is a standard way to create a list from a simple index formula.
Tabulate Values
TabulateValues.scala
Replay: real traced execution (multi-file project)
object Main {
def main(args: Array[String]): Unit = {
val count = 4
val step = 2
val values = List.tabulate(count)(i => i * step)
val total = values.sum
val summary = values.mkString(",")
println("values=" + summary)
println("total=" + total)
}
}
object Main {
def main(args: Array[String]): Unit = {
val count = 2
val step = 2
val values = List.tabulate(count)(i => i * step)
val total = values.sum
val summary = values.mkString(",")
println("values=" + summary)
println("total=" + total)
}
}
object Main {
def main(args: Array[String]): Unit = {
val count = 6
val step = 2
val values = List.tabulate(count)(i => i * step)
val total = values.sum
val summary = values.mkString(",")
println("values=" + summary)
println("total=" + total)
}
}
count ← 4, step ← 2, values ← List(0, 2, 4, 6), total ← 12, values.sum ← 12
1object Main {2 def main(args: Array[String]): Unit = {3 val count→ 4 = 4 //@count=2, 64 val step→ 2 = 25 val values→ List(0, 2, 4, 6) = List.tabulate(count4)(i => i * step)6 val total→ 12 = values.sum→ 127 val summary→ 0,2,4,6 = valuesList(0, 2, 4, 6).mkString(",")89 println("values=" + summary0,2,4,6)10 println("total=" + total12)11 }12}outputvalues=0,2,4,6 total=12
count ← 2, step ← 2, values ← List(0, 2), total ← 2, values.sum ← 2
1object Main {2 def main(args: Array[String]): Unit = {3 val count→ 2 = 24 val step→ 2 = 25 val values→ List(0, 2) = List.tabulate(count2)(i => i * step)6 val total→ 2 = values.sum→ 27 val summary→ 0,2 = valuesList(0, 2).mkString(",")89 println("values=" + summary0,2)10 println("total=" + total2)11 }12}outputvalues=0,2 total=2
count ← 6, step ← 2, values ← List(0, 2, 4, 6, 8, 10), total ← 30
1object Main {2 def main(args: Array[String]): Unit = {3 val count→ 6 = 64 val step→ 2 = 25 val values→ List(0, 2, 4, 6, 8, 10) = List.tabulate(count6)(i => i * step)6 val total→ 30 = values.sum→ 307 val summary→ 0,2,4,6,8,10 = valuesList(0, 2, 4, 6, 8, 10).mkString(",")89 println("values=" + summary0,2,4,6,8,10)10 println("total=" + total30)11 }12}outputvalues=0,2,4,6,8,10 total=30