Build labeled text for each element.

accumulate-labels A for-comprehension can build a label for each element. Joining the results gives a single readable summary string.

Accumulating Labels

tag
AccumulateLabels.scala
Replay: real traced execution (multi-file project)
object Main {
  def main(args: Array[String]): Unit = {
    val tag = "id"
    val items = List(10, 20, 30)
    val labels = for (n <- items) yield tag + "=" + n
    val text = labels.mkString(", ")

    println("count=" + labels.length)
    println("text=" + text)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val tag = "row"
    val items = List(10, 20, 30)
    val labels = for (n <- items) yield tag + "=" + n
    val text = labels.mkString(", ")

    println("count=" + labels.length)
    println("text=" + text)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val tag = "k"
    val items = List(10, 20, 30)
    val labels = for (n <- items) yield tag + "=" + n
    val text = labels.mkString(", ")

    println("count=" + labels.length)
    println("text=" + text)
  }
}
  1. tag ← id, items ← List(10, 20, 30), labels ← List(id=10, id=20, id=30)

    1object Main {2  def main(args: Array[String]): Unit = {3    val tag→ id = "id" //@tag="row", "k"4    val items→ List(10, 20, 30) = List(10, 20, 30)5    val labels→ List(id=10, id=20, id=30) = for (n <- itemsList(10, 20, 30)) yield tagid + "=" + n6    val text→ id=10, id=20, id=30 = labelsList(id=10, id=20, id=30).mkString(", ")78    println("count=" + labels.length3)9    println("text=" + textid=10, id=20, id=30)10  }11}
    outputcount=3
    text=id=10, id=20, id=30
  1. tag ← row, items ← List(10, 20, 30), labels ← List(row=10, row=20, row=30)

    1object Main {2  def main(args: Array[String]): Unit = {3    val tag→ row = "row"4    val items→ List(10, 20, 30) = List(10, 20, 30)5    val labels→ List(row=10, row=20, row=30) = for (n <- itemsList(10, 20, 30)) yield tagrow + "=" + n6    val text→ row=10, row=20, row=30 = labelsList(row=10, row=20, row=30).mkString(", ")78    println("count=" + labels.length3)9    println("text=" + textrow=10, row=20, row=30)10  }11}
    outputcount=3
    text=row=10, row=20, row=30
  1. tag ← k, items ← List(10, 20, 30), labels ← List(k=10, k=20, k=30)

    1object Main {2  def main(args: Array[String]): Unit = {3    val tag→ k = "k"4    val items→ List(10, 20, 30) = List(10, 20, 30)5    val labels→ List(k=10, k=20, k=30) = for (n <- itemsList(10, 20, 30)) yield tagk + "=" + n6    val text→ k=10, k=20, k=30 = labelsList(k=10, k=20, k=30).mkString(", ")78    println("count=" + labels.length3)9    println("text=" + textk=10, k=20, k=30)10  }11}
    outputcount=3
    text=k=10, k=20, k=30