Выбор ответа Middle Функции высшего порядка обновлено
Каррирование против частичного применения
Вопрос
Чем каррирование отличается от частичного применения?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Каррирование делает из f(a, b, c) цепочку f(a)(b)(c), частичное фиксирует часть. Каррирование меняет форму функции: она принимает аргументы по одному (или группами) до тех пор, пока их не наберётся нужное число.
Варианты ответа
- Это синонимы: оба приёма фиксируют первый аргумент и возвращают новую функцию
- Каррирование работает только со стрелками, а частичное применение только с
bind - Каррирование делает из
f(a, b, c)цепочкуf(a)(b)(c), частичное фиксирует частьправильный ответ - Частичное применение вызывает функцию сразу, а каррирование откладывает вызов
Разбор
Каррирование меняет форму функции: она принимает аргументы по одному (или группами) до тех пор, пока их не наберётся нужное число. Частичное применение один раз фиксирует часть аргументов: const add5 = add.bind(null, 5). Каррированную функцию удобно частично применять, поэтому их путают, но это разные операции. Оба приёма можно реализовать любыми функциями, bind лишь один из способов. И оба возвращают новую функцию, а не вызывают исходную сразу.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.