Частичный вызов функции и каррирование. В чем разница?

Частичный вызов:
def f(m: Int, n: Int) = m*n
val f3 = f(3, _:Int)
var result = f3(4)

Каррирование:
def f(m: Int)(n: Int) = m*n
val f3 = f(3) _
var result = f3(4)


Разница в синтаксисе, или есть какая-та принципиальная разница?
  • Вопрос задан
  • 5540 просмотров
Решения вопроса 1
@wing_pin
Люблю сгущенку и функциональное программирование
В то время как частичное применение преобразует функцию с N параметрами в функцию с N-k параметрами, применяя один или несколько аргументов, каррирование же декомпозирует функцию на функции от одного аргумента, сохраняя при этом последовательность аргументов.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dokwork
@dokwork
вот здесь есть неплохое объяснение
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы