каррирование scala с помощью вложенных функций или списков нескольких параметров

В 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)

Какие критерии мне следует использовать, чтобы предпочесть один подход другому?

6
задан Morgan Creighton 15 January 2011 в 00:53
поделиться