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

Как сделать так, чтобы a(1)(2)(3)(4)(5) вернуло число 15?

Итак, имеется такое выражение:

a(1)(2)(3)(4)(5);

Возможно ли сделать так, чтобы оно вернуло 15? т.е.:

const x = a(1)(2)(3)(4)(5);
console.log(x); // 15


Я написал такой код:

const a = (() => {
  this.acc = 0;

  return x => {
    if (typeof x === "number") {
      this.acc += x;
    }
    
    if (this.acc >= 15) {
      return this.acc;
    }

    return a;
  };
})();


Технически верно, но что если понадобится получить 6 с той же функцией?

a(1)(2)(3); // 6
  • Вопрос задан
  • 252 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const a = v1 => {
  const f = v2 => a(v1 + v2);
  f.valueOf = () => v1;
  return f;
};


a(1)(2)(3)(4)(5) * 6  // 90
10 + a(4)(5)(6)       // 25
Math.pow(a(8)(1), 3)  // 729
a(4)(6) - a(3)        // 7
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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