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

count
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)
  }
}
  1. 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
  1. 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
  1. 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