AlexLearne Ответов: 1

Считайте с помощью функции, используя имена вместо операторов


Как я могу сделать что-то подобное?
four(plus(nine()))-> 13

Мне нужно следовать точно такой же схеме. Я хотел бы знать, как я могу использовать круглые скобки. И да, плюс тоже должен быть отдельный метод.

Что я уже пробовал:

Я реализовал аналогичный подход, но все же мне нужно было бы назвать его по-другому:
function four (fn) {
  return fn(4)
}
function plusNine(arg) {
  return 9 + arg
}
four(plusNine) ///I can`t use parentheses, can I?

David_Wimbley

Мне кажется, что оператор plus, превратившийся в вызов функции, не знает, как добавить четыре к параметру функции plus (в данном случае 9) из-за того, что в то время он не вызывал функцию four. Для того, чтобы делать, что оно должно быть реорганизовано, а в следующем Я думаю

плюс (четыре (), девять ()) - > 13

1 Ответов

Рейтинг:
7

Patrice T

Это не может так работать.
Оператор должен знать все значения, это единственная возможность.
единственный способ-это:

plus(four(),nine())-> 13


В противном случае единственная возможность заключается в том, что plus является уникальным и в тех случая plus это пустая оболочка, и функциональность перемещается в four функция.


Ralf Meier

И дополнительно каждое введенное имя функции должно быть проверено (возможно, путем отражения), если есть соответствующая и существующая функция. Иначе это не сработает ...