В Scala скажем, у меня есть функция, как это:типизированных Функции и Карринг в Scala
def foo[R](x: String, y:() => R): R
, так что я могу сделать:
val some: Int = foo("bar", {() => 13 })
Есть ли способ изменить это, чтобы использовать функцию каррирование без «потери» типа второго аргумента?
def foo[R](x: String)(y:() => R): R
val bar = foo("bar") <-- this is now of type (() => Nothing)
val some: Int = bar(() => 13) <-- doesn't work
Вы должны действительно принять ответ senia, все, что я сделал, это показать небольшой вариант! Помимо Kudos, нет никакой существенной выгоды в репутации более чем 20k. –