В чем причина добавления ключевого слова case в Scala?

Помимо:

case class A

...кейс что довольно полезно?

Почему мы должны использоватьcase вmatch? Не было бы:

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

... бытьмного красивее и лаконичнее?

Или почему мы должны использоватьcase когда функция принимает кортеж? Скажем, у нас есть:

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

Теперь не:

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

...путь страшнее, чем просто

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

...?

Ответы на вопрос(4)

Ваш ответ на вопрос