Scala, каррирование и перегрузка

Допустим, у вас есть следующее:

foo(x: String)(y: Int): Int
foo(x: String)(y: Double): Int

Scala не допускает такого выражения. Насколько я понимаю, причина этого в том, что foo ("asdf") не имеет четко определенного типа (это либо Int => Int, либо Double => Int).

Есть ли причина, по которой такое " "политипизированные" функции не должны быть разрешены?

15
задан Henry Henrinson 24 August 2011 в 16:49
поделиться