f: A => B => ... => Z
在 scala/scalaz/shapeless/etc 中是否存在一般丰富的内容?这样f.uncurried:(A, B, ...) => Z
吗?
目前我有这个,但我相信某处必须有一个预先存在的、更通用的解决方案。
implicit def enrichMyCurriedFunction[A, B, C] = new EnrichedCurriedFunction[A, B, C](_)
class EnrichedCurriedFunction[A, B, C](f: A => B => C) {
def uncurried: (A, B) => C = (a, b) => f(a)(b)
}