Выбор ответа Middle Функции высшего порядка обновлено
Порядок применения в compose
Вопрос
Что выведет код?
const compose = (...fns) => (x) => fns.reduceRight((v, f) => f(v), x);
const inc = (x) => x + 1;
const double = (x) => x * 2;
console.log(compose(inc, double)(5));
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 11. reduceRight проходит функции справа налево, поэтому compose(inc, double)(5) это inc(double(5)) = inc(10) = 11.
Варианты ответа
1210711правильный ответ
Разбор
reduceRight проходит функции справа налево, поэтому compose(inc, double)(5) это inc(double(5)) = inc(10) = 11. 12 получилось бы при порядке слева направо, double(inc(5)): так работает pipe. 10 это результат только double, 7 это 5 + 2, такой комбинации в коде нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Ограничения стрелочных функций
Следующий вопрос
Каррирование против частичного применения