Digamos que tiene lo siguiente:Scala, currying y la sobrecarga
foo(x: String)(y: Int): Int
foo(x: String)(y: Double): Int
Scala no permite tal expresión. Por lo que puedo ver, la razón de esto es que foo ("asdf") no tiene un tipo bien definido (es Int => Int o Double => Int).
¿Hay alguna razón por la cual no se deberían permitir tales funciones "politipo"?
https://issues.scala-lang.org/browse/SI-2628 – Bradford
Scala le permite definir ese par de métodos sobrecargados, pero cualquier llamada es ambigua, por los motivos descritos por Martin a continuación. Relevante: http://stackoverflow.com/questions/2510108/why-avoid-method-overloading – retronym