如果我有:如何在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