J'essaie de comprendre les avantages du currying par rapport aux applications partielles dans Scala. Veuillez considérer le code suivant:
def sum(f: Int => Int) = (a: Int, b: Int) => f(a) + f(b)
def sum2(f: Int => Int, a: Int, b: Int): Int = f(a) + f(b)
def sum3(f: Int => Int)(a: Int, b: Int): Int = f(a) + f(b)
val ho = sum({identity})
val partial = sum2({ identity }, _, _)
val currying = sum3({ identity })
val a = currying(2, 2)
val b = partial(2, 2)
val c = ho(2, 2)
Donc, si je peux calculer aussi facilement une fonction partiellement appliquée, quels sont les avantages du curry?