The code below doesn\'t compile if I uncomment the line indicated. The compiler complains: \"stable identifier required\".
val Empty = Stream.empty
val a
You can't pattern match on Stream.empty
because it is a method (in object Stream
) that always returns the empty stream (but the compiler doesn't know that).
Instead of assigning val empty = Stream.empty
, you can match on Stream.Empty
, which is an Object
:
scala> a match {
case Stream.Empty => println("done")
case h #:: tl => println(h)
}