В Scala я могу определить функцию с двумя списками параметров.
def myAdd(x :Int)(y :Int) = x + y
Это упрощает определение частично применяемой функции.
val plusFive = myAdd(5) _
Но, Я могу добиться чего-то подобного, определяя и возвращая вложенную функцию.
def myOtherAdd(x :Int) = {
def f(y :Int) = x + y
f _
}
Косметически я переместил подчеркивание, но это все еще похоже на каррирование.
val otherPlusFive = myOtherAdd(5)
Какие критерии мне следует использовать, чтобы предпочесть один подход другому?