Не думаю, что случится что-то плохое.Преобразование совершенно однозначно.В худшем случае, Scala не сможет понять, что применяется неявное преобразование.
implicit def curryImplicitly[A,B,C](f: (A, B) => C) =
(a: A) => (b: B) => f(a, b)
implicit def uncurryImplicitly[A,B,C](f: A => B => C) =
(a: A, b: B) => f(a)(b)
С другой стороны, это также будет полезно., поэтому вам нужно это:
implicit def flipAndCurry[A,B,C](f: (A, B) => C) =
(b: B) => (a: A) => f(a, b)
implicit def flipAndUncurry[A,B,C](f: A => B => C) =
(b: B, a: A) => f(a)(b)
Но теперь преобразование неоднозначно.Так что это не все розы.
Давайте узнаем, как это работает на практике.Вам могут понадобиться эквиваленты для Function3, Function4 и т. Д.