Higher-Order Functions
Mapping a List
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
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)
}
}
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
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
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