Вопрос №48946 от пользователя Msh Ker в уроке «Реализация пар», курс «JS: Составные данные»

Msh Ker

Не могу понять. Если считается что в переменной pairs у нас хранится функция f => f(a, b), то почему мы не может сразу передать в car/cdr функцию возвращающую нужный нам результат:

const car = ((x, y) =>  x)

Ведь в таком случае получится что это определение попадет вместо f и если pairs = f => f(a, b), то теперь подставив определение car мы должны на выходе иметь ((x, y) => x) => ((x, y) => x)(a, b) что и вернёт нам наш результат. Но этого почему то не происходит..

1 0

Сергей Мелодин

Msh Ker, приветствую.

Кажется, вы хотите сделать что-то типа такого:

const make = (f) => (x, y) => f(x, y);
const car = make((x, y) => x);
car(1, 2) // 1

// если писать всё одной строкой, то:
(f => (x, y) => f(x, y))((x, y) => x)(1, 2)

Но в таком случае конструктор можно упростить до identity: (f => f)((x, y) => x)(1, 2), поэтому можно обойтись без него и сделать car/cdr напрямую.

0

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы соглашаетесь c «Политикой конфиденциальности» и «Условиями оказания услуг»

Рекомендуемые программы

С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.

Иконка программы Фронтенд-разработчик
Профессия
Разработка фронтенд-компонентов веб-приложений
27 октября 8 месяцев
Иконка программы Python-разработчик
Профессия
Разработка веб-приложений на Django
27 октября 8 месяцев
Иконка программы PHP-разработчик
Профессия
Разработка веб-приложений на Laravel
27 октября 8 месяцев
Иконка программы Node.js-разработчик
Профессия
Разработка бэкенд-компонентов веб-приложений
27 октября 8 месяцев
Иконка программы Верстальщик
Профессия
Вёрстка с использованием последних стандартов CSS
в любое время 5 месяцев
Иконка программы Java-разработчик
Профессия
Разработка приложений на языке Java
27 октября 10 месяцев
Иконка программы Разработчик на Ruby on Rails
Профессия
Новый
Создает веб-приложения со скоростью света
27 октября 5 месяцев