Valor de “retorno” de coincidencia de patrón
¿Por qué no es posible encadenar construcciones de coincidencia de patrones? Por ejemplo, lo siguiente es legal, si no tiene sentido,
val a = ADT(5)
val b = a match {
case ADT(a) if a > 4 => ADT(a * 3)
case ADT(a) => ADT(a + 1)
}
b match {
case ADT(a) if a > 13 => doSomething(a)
case _ => {}
}
pero lo siguiente no es:
a match {
case ADT(a) if a > 4 => ADT(a * 3)
case ADT(a) => ADT(a + 1)
} match {
case ADT(a) if a > 13 => doSomething(a)
case _ => {}
}
Sospecho que es porque no debería hacerlo en primer lugar, pero en principio no veo por qué no es legal.