Если у меня есть:Как мне получить (a, b) => c из a => b => c в Scala?
val f : A => B => C
Это сокращение для:
val f : Function1[A, Function1[B, C]]
Как получить функцию g
с подписью:
val g : (A, B) => C = error("todo")
(т.е.)
val g : Function2[A, B, C] //or possibly
val g : Function1[(A, B), C]
с точки зрения f
?
Странно, что на '' FunctionN'' нет метода 'uncurried'? –
Чтобы использовать метод uncurried для Function1, вам необходимо ограничить приемлемые цели его функциями, возвращающими функции. То есть функции с типом Function1 [A, Function1 [B, C]]. Вероятно, это можно было бы сделать с ограничениями обобщенного типа, но они не были доступны до Scala 2.8. –