¿Cuál es el razonamiento detrás de agregar la palabra clave "caso" a Scala?

Aparte de:

case class A

...caso que es bastante util?

¿Por qué necesitamos usarcase enmatch? No podria

x match {
  y if y > 0 => y * 2
  _ => -1
}

... sermucho más bonita y concisa?

¿O por qué necesitamos usarcase Cuando una función toma una tupla? Oye, tenemos:

val z = List((1, -1), (2, -2), (3, -3)).zipWithIndex

Ahora no es

z map { case ((a, b), i) => a + b + i }

...camino mas feo que solo

z map (((a, b), i) => a + b + i)

...?

Respuestas a la pregunta(4)

Su respuesta a la pregunta