Задача создать метод plus

Как в функции вернуть плюс

const plus = () => {

  return +; // так не работает

}

Реализовать методы seven, plus, one, five, minus, two. seven(plus(one()))

seven(plus(one())) -> 8
five(minus(two())) -> 3

Ответы (3 шт):

Автор решения: surpri6e

Можно попытаться вернуть строку, содержащую 'плюс'. Но если честно, я не особо понял смысл задания, можете расписать по подробнее.

const plus = () => {
  return '+'
}
console.log(plus())
→ Ссылка
Автор решения: Миша
function plus(arg) {
    return function (a) {
        return a + arg;
    }
} 
→ Ссылка
Автор решения: OPTIMUS PRIME

Пусть функция plus получает число и возвращает специальный объект, описывающий данную операцию. А функции-числа, в свою очередь, получив такой объект, должны выполнить операцию, либо, если объект отсутствует - вернуть своё число.

Как-то так:

console.log( seven(plus(two())) ); // 9
console.log( seven(plus(two(times(three())))) ); // 13

function plus(num) {
  return { key: '+', val: num };
}
function times(num) {
  return { key: '*', val: num };
}
function calc(math_obj, num) {
  switch (math_obj.key) {
    case '+':
      return num + math_obj.val;
    case '*':
      return num * math_obj.val;
  }
}


function  zero(math_obj) { return math_obj == undefined ? 0 : calc(math_obj, 0) }
function   one(math_obj) { return math_obj == undefined ? 1 : calc(math_obj, 1) }
function   two(math_obj) { return math_obj == undefined ? 2 : calc(math_obj, 2) }
function three(math_obj) { return math_obj == undefined ? 3 : calc(math_obj, 3) }
function  four(math_obj) { return math_obj == undefined ? 4 : calc(math_obj, 4) }
function  five(math_obj) { return math_obj == undefined ? 5 : calc(math_obj, 5) }
function   six(math_obj) { return math_obj == undefined ? 6 : calc(math_obj, 6) }
function seven(math_obj) { return math_obj == undefined ? 7 : calc(math_obj, 7) }
function eight(math_obj) { return math_obj == undefined ? 8 : calc(math_obj, 8) }
function  nine(math_obj) { return math_obj == undefined ? 9 : calc(math_obj, 9) }
function   ten(math_obj) { return math_obj == undefined ? 10 : calc(math_obj, 10) }

Функции можно создавать и в цикле.

let nums = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten'];

for (let i = 0; i < nums.length; i++) {
  window[nums[i]] = function (math_obj) {
    return math_obj == undefined ? i : calc(math_obj, i);    
  };
}
→ Ссылка