Read one element and a slice of a sequence.

index-slice A sequence is indexed from zero, so `nums(at)` reads one element. `slice` returns the elements between two positions as a new sequence.

Indexing and Slicing

at
IndexSlice.scala
Replay: real traced execution (multi-file project)
object Main {
  def main(args: Array[String]): Unit = {
    val at = 2
    val nums = List(10, 20, 30, 40, 50)
    val item = nums(at)
    val middle = nums.slice(1, 4)

    println("item=" + item)
    println("middle=" + middle.mkString(","))
    println("size=" + nums.length)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val at = 0
    val nums = List(10, 20, 30, 40, 50)
    val item = nums(at)
    val middle = nums.slice(1, 4)

    println("item=" + item)
    println("middle=" + middle.mkString(","))
    println("size=" + nums.length)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val at = 4
    val nums = List(10, 20, 30, 40, 50)
    val item = nums(at)
    val middle = nums.slice(1, 4)

    println("item=" + item)
    println("middle=" + middle.mkString(","))
    println("size=" + nums.length)
  }
}
  1. at ← 2, nums ← List(10, 20, 30, 40, 50), item ← 30, middle ← List(20, 30, 40)

    1object Main {2  def main(args: Array[String]): Unit = {3    val at→ 2 = 2 //@at=0, 44    val nums→ List(10, 20, 30, 40, 50) = List(10, 20, 30, 40, 50)5    val item→ 30 = nums(at)306    val middle→ List(20, 30, 40) = numsList(10, 20, 30, 40, 50).slice(1, 4)78    println("item=" + item30)9    println("middle=" + middleList(20, 30, 40).mkString(","))10    println("size=" + nums.length5)11  }12}
    outputitem=30
    middle=20,30,40
    size=5
  1. at ← 0, nums ← List(10, 20, 30, 40, 50), item ← 10, middle ← List(20, 30, 40)

    1object Main {2  def main(args: Array[String]): Unit = {3    val at→ 0 = 04    val nums→ List(10, 20, 30, 40, 50) = List(10, 20, 30, 40, 50)5    val item→ 10 = nums(at)106    val middle→ List(20, 30, 40) = numsList(10, 20, 30, 40, 50).slice(1, 4)78    println("item=" + item10)9    println("middle=" + middleList(20, 30, 40).mkString(","))10    println("size=" + nums.length5)11  }12}
    outputitem=10
    middle=20,30,40
    size=5
  1. at ← 4, nums ← List(10, 20, 30, 40, 50), item ← 50, middle ← List(20, 30, 40)

    1object Main {2  def main(args: Array[String]): Unit = {3    val at→ 4 = 44    val nums→ List(10, 20, 30, 40, 50) = List(10, 20, 30, 40, 50)5    val item→ 50 = nums(at)506    val middle→ List(20, 30, 40) = numsList(10, 20, 30, 40, 50).slice(1, 4)78    println("item=" + item50)9    println("middle=" + middleList(20, 30, 40).mkString(","))10    println("size=" + nums.length5)11  }12}
    outputitem=50
    middle=20,30,40
    size=5