Souvent, vous avez des correspondances "symétriques" et vous voulez écrire des choses comme :
def g(p:(Int,Int)) = p match {
case (10,n) | (n,10) => println(n)
case _ => println("nope")
}
Ceci n'est pas autorisé, mais si chaque alternative a les mêmes variables con les mêmes types Si vous n'êtes pas d'accord, cela ne devrait pas être un problème, car cela pourrait être traduit en cas séparés :
def g(p:(Int,Int)) = p match {
case (10,n) => println(n)
case (n,10) => println(n)
case _ => println("nope")
}
Alors pourquoi avons-nous cette restriction ?