如果我有:如何在Scala中从a => b => c获取(a,b)=> c?
val f : A => B => C
这是简写:
val f : Function1[A, Function1[B, C]]
我如何获得一个功能g
与签名:
val g : (A, B) => C = error("todo")
(IE)
val g : Function2[A, B, C] //or possibly
val g : Function1[(A, B), C]
根据f
?是对f
?
奇怪的是'FunctionN'本身没有'uncurried'方法吗? – 2010-08-11 10:59:13
要在Function1上使用不安全的方法,您需要将其可接受的目标限制为返回函数的函数。也就是说Function1类型的函数[A,Function1 [B,C]]。这可能可以通过广义类型约束来完成,但是这些在Scala 2.8之前是不可用的。 – 2010-08-11 13:32:12