Read simple facts from a small list.

list-basics A list stores values in order. You can count the values, read the first value, and build a display string.

List Basics

extra
ListBasics.scala
Replay: real traced execution (multi-file project)
object Main {
  def main(args: Array[String]): Unit = {
    val extra = 4
    val numbers = List(1, 2, 3)
    val extended = numbers :+ extra
    val first = extended.head
    val count = extended.length
    val joined = extended.mkString(",")

    println("first=" + first)
    println("count=" + count)
    println("joined=" + joined)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val extra = 5
    val numbers = List(1, 2, 3)
    val extended = numbers :+ extra
    val first = extended.head
    val count = extended.length
    val joined = extended.mkString(",")

    println("first=" + first)
    println("count=" + count)
    println("joined=" + joined)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val extra = 9
    val numbers = List(1, 2, 3)
    val extended = numbers :+ extra
    val first = extended.head
    val count = extended.length
    val joined = extended.mkString(",")

    println("first=" + first)
    println("count=" + count)
    println("joined=" + joined)
  }
}
  1. extra ← 4, numbers ← List(1, 2, 3), extended ← List(1, 2, 3, 4)

    1object Main {2  def main(args: Array[String]): Unit = {3    val extra→ 4 = 4 //@extra=5, 94    val numbers→ List(1, 2, 3) = List(1, 2, 3)5    val extended→ List(1, 2, 3, 4) = numbersList(1, 2, 3) :+ extra46    val first→ 1 = extended.head→ 17    val count→ 4 = extended.length→ 48    val joined→ 1,2,3,4 = extendedList(1, 2, 3, 4).mkString(",")910    println("first=" + first1)11    println("count=" + count4)12    println("joined=" + joined1,2,3,4)13  }14}
    outputfirst=1
    count=4
    joined=1,2,3,4
  1. extra ← 5, numbers ← List(1, 2, 3), extended ← List(1, 2, 3, 5)

    1object Main {2  def main(args: Array[String]): Unit = {3    val extra→ 5 = 54    val numbers→ List(1, 2, 3) = List(1, 2, 3)5    val extended→ List(1, 2, 3, 5) = numbersList(1, 2, 3) :+ extra56    val first→ 1 = extended.head→ 17    val count→ 4 = extended.length→ 48    val joined→ 1,2,3,5 = extendedList(1, 2, 3, 5).mkString(",")910    println("first=" + first1)11    println("count=" + count4)12    println("joined=" + joined1,2,3,5)13  }14}
    outputfirst=1
    count=4
    joined=1,2,3,5
  1. extra ← 9, numbers ← List(1, 2, 3), extended ← List(1, 2, 3, 9)

    1object Main {2  def main(args: Array[String]): Unit = {3    val extra→ 9 = 94    val numbers→ List(1, 2, 3) = List(1, 2, 3)5    val extended→ List(1, 2, 3, 9) = numbersList(1, 2, 3) :+ extra96    val first→ 1 = extended.head→ 17    val count→ 4 = extended.length→ 48    val joined→ 1,2,3,9 = extendedList(1, 2, 3, 9).mkString(",")910    println("first=" + first1)11    println("count=" + count4)12    println("joined=" + joined1,2,3,9)13  }14}
    outputfirst=1
    count=4
    joined=1,2,3,9

Extend and Read

  1. numbers starts as List(1, 2, 3).
  2. :+ extra appends 4 and makes extended.
  3. head reads the first value.
  4. length counts the values.
  5. mkString(",") builds display text. | Step | Value | | --- | --- | | start | 1,2,3 | | after append | 1,2,3,4 | | first | 1 | | count | 4 |

Exercise: ListBasics.scala

Append one number to a list, then print the first value, count, and joined text