Scala Saturday today is short and sweet:
Stream.distinct removes any duplicate members of a stream, leaving only unique values.
One way to remove duplicates is to turn your stream into a set with
val noDupes = Stream(3,5,6,3,3,7,1,1,7,3,2,7).toSet // noDupes: scala.collection.immutable.Set[Int] = // Set(5, 1, 6, 2, 7, 3)
That’s fine if you don’t care about preserving the order of the items in the input stream.
But if you do want to preserve the order,
Stream.distinct is the ticket:
val noDupesOrdered = Stream(3,5,6,3,3,7,1,1,7,3,2,7).distinct // noDupesOrdered: scala.collection.immutable.Stream[Int] = // Stream(3, 5, 6, 7, 1, 2)