Задать вопрос
@Bembolat

Как понять эту функцию js?

const f = x => y => x + y(3);
f(1)(x => 7 + x);


Результат вызова функции - 11 . Сможете объяснить как так получилось?
А вот этот момент y(3) вообще не понял, это же вызов функции, но где она определенна?
  • Вопрос задан
  • 219 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
const f = function (x) {
  return function (y) { <- Вот где она определена
    return x + y(3);
  }
};

f(1)(
  function (x) {return 7 + x;} <- И вот где
);
Ответ написан
rockon404
@rockon404
Frontend Developer
Вызов:
const result = f(1)(x => 7 + x);
можно переписать как:
const foo = f(1);
const result = foo(x => 7 + 1);

foo можно представить как:
y => 1 + y(3);
А вызов foo(x => 7 + 1) как:
1 + (x => 7 + x)(3)
или:
1 + (7 + 3)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Zoominger
@Zoominger
System Integrator
Ответ написан
Комментировать
hzzzzl
@hzzzzl
function f(x) {
  return function(userFunction) {
    return x + userFunction(3)
  }
}

f(1)(function(x) { return 7 + x })
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы