I (inadvertently) came across a bit of pattern matching syntax I did not expect to compile and now cannot figure out.
It appears related to unapplySeq.
Note the case x List(_,_) part in this simple example:
val xs = List(1, 2, 3) //> xs : List[Int] = List(1, 2, 3)
xs match {
case x List (_, _) => "yes"
case _ => "no"
} //> res0: String = yes
I am used to : or @ in pattern match syntax, but am confused about this. How does this syntax work and what (if any) is its relationship to unapplySeq?
Sample code executed in Scala 2.11.6