Make a sorted, de-duplicated summary string.

sorted-summary `distinct` drops repeats and `sorted` orders the result. Joining the values gives a stable summary string that does not depend on input order.

Sorted Summary

first
SortedSummary.scala
Replay: real traced execution (multi-file project)
object Main {
  def main(args: Array[String]): Unit = {
    val first = 3
    val nums = List(first, 1, 2, 1, first)
    val unique = nums.distinct.sorted
    val text = unique.mkString(",")

    println("count=" + unique.length)
    println("text=" + text)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val first = 5
    val nums = List(first, 1, 2, 1, first)
    val unique = nums.distinct.sorted
    val text = unique.mkString(",")

    println("count=" + unique.length)
    println("text=" + text)
  }
}
object Main {
  def main(args: Array[String]): Unit = {
    val first = 9
    val nums = List(first, 1, 2, 1, first)
    val unique = nums.distinct.sorted
    val text = unique.mkString(",")

    println("count=" + unique.length)
    println("text=" + text)
  }
}
  1. first ← 3, nums ← List(3, 1, 2, 1, 3), unique ← List(1, 2, 3)

    1object Main {2  def main(args: Array[String]): Unit = {3    val first→ 3 = 3 //@first=5, 94    val nums→ List(3, 1, 2, 1, 3) = List(first3, 1, 2, 1, first)5    val unique→ List(1, 2, 3) = nums.distinctList(3, 1, 2).sorted6    val text→ 1,2,3 = uniqueList(1, 2, 3).mkString(",")78    println("count=" + unique.length3)9    println("text=" + text1,2,3)10  }11}
    outputcount=3
    text=1,2,3
  1. first ← 5, nums ← List(5, 1, 2, 1, 5), unique ← List(1, 2, 5)

    1object Main {2  def main(args: Array[String]): Unit = {3    val first→ 5 = 54    val nums→ List(5, 1, 2, 1, 5) = List(first5, 1, 2, 1, first)5    val unique→ List(1, 2, 5) = nums.distinctList(5, 1, 2).sorted6    val text→ 1,2,5 = uniqueList(1, 2, 5).mkString(",")78    println("count=" + unique.length3)9    println("text=" + text1,2,5)10  }11}
    outputcount=3
    text=1,2,5
  1. first ← 9, nums ← List(9, 1, 2, 1, 9), unique ← List(1, 2, 9)

    1object Main {2  def main(args: Array[String]): Unit = {3    val first→ 9 = 94    val nums→ List(9, 1, 2, 1, 9) = List(first9, 1, 2, 1, first)5    val unique→ List(1, 2, 9) = nums.distinctList(9, 1, 2).sorted6    val text→ 1,2,9 = uniqueList(1, 2, 9).mkString(",")78    println("count=" + unique.length3)9    println("text=" + text1,2,9)10  }11}
    outputcount=3
    text=1,2,9