Transform every element of a list with map.

map-list `map` applies a function to each element and returns a new list. `mkString` joins the results into a readable string.

Mapping a List

factor
MapList.scala
Replay: real traced execution (multi-file project)
object Main {
  def main(args: Array[String]): Unit = {
    val factor = 2
    val nums = List(1, 2, 3)
    val scaled = nums.map(n => n * factor)
    val text = scaled.mkString(",")

    println("factor=" + factor)
    println("text=" + text)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val factor = 3
    val nums = List(1, 2, 3)
    val scaled = nums.map(n => n * factor)
    val text = scaled.mkString(",")

    println("factor=" + factor)
    println("text=" + text)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val factor = 10
    val nums = List(1, 2, 3)
    val scaled = nums.map(n => n * factor)
    val text = scaled.mkString(",")

    println("factor=" + factor)
    println("text=" + text)
  }
}
  1. factor ← 2, nums ← List(1, 2, 3), scaled ← List(2, 4, 6), text ← 2,4,6

    1object Main {2  def main(args: Array[String]): Unit = {3    val factor→ 2 = 2 //@factor=3, 104    val nums→ List(1, 2, 3) = List(1, 2, 3)5    val scaled→ List(2, 4, 6) = numsList(1, 2, 3).map(n => n * factor)6    val text→ 2,4,6 = scaledList(2, 4, 6).mkString(",")78    println("factor=" + factor2)9    println("text=" + text2,4,6)10  }11}
    outputfactor=2
    text=2,4,6
  1. factor ← 3, nums ← List(1, 2, 3), scaled ← List(3, 6, 9), text ← 3,6,9

    1object Main {2  def main(args: Array[String]): Unit = {3    val factor→ 3 = 34    val nums→ List(1, 2, 3) = List(1, 2, 3)5    val scaled→ List(3, 6, 9) = numsList(1, 2, 3).map(n => n * factor)6    val text→ 3,6,9 = scaledList(3, 6, 9).mkString(",")78    println("factor=" + factor3)9    println("text=" + text3,6,9)10  }11}
    outputfactor=3
    text=3,6,9
  1. factor ← 10, nums ← List(1, 2, 3), scaled ← List(10, 20, 30), text ← 10,20,30

    1object Main {2  def main(args: Array[String]): Unit = {3    val factor→ 10 = 104    val nums→ List(1, 2, 3) = List(1, 2, 3)5    val scaled→ List(10, 20, 30) = numsList(1, 2, 3).map(n => n * factor)6    val text→ 10,20,30 = scaledList(10, 20, 30).mkString(",")78    println("factor=" + factor10)9    println("text=" + text10,20,30)10  }11}
    outputfactor=10
    text=10,20,30