Содержание
- JavaScript и Java
- Появление и история JavaScript/ECMAScript
- Связь с Java
- Различия с Java
- Strict mode
- Переменные и типы
- Объявление переменных
- Типы значений
- Массивы
- Простые функции
- Синтаксис объвления
- Передача аргументов
- Способы вызова
- Стрелочные функции
- Функции высших порядков
- Примеры
- Сортировка
- Компараторы
- Составные компараторы
- Функциональные интерфейсы
- Комбинаторы
- foldLeft, foldRight
- map
- Композиция
- Карринг
- Примеры
Домашнее задание 6. Функциональные выражения на JavaScript
-
Разработайте функции
cnst
,variable
,add
,subtract
,multiply
,divide
,negate
для вычисления выражений с тремя переменными:x
,y
иz
. -
Функции должны позволять производить вычисления вида:
let expr = subtract( multiply( cnst(2), variable("x") ), cnst(3) ); println(expr(5, 0, 0));
При вычислении выражения вместо каждой переменной подставляется значение, переданное в качестве соответствующего параметра функцииexpr
. Таким образом, результатом вычисления приведенного примера должно быть число 7. -
Тестовая программа должна вычислять выражение
x2−2x+1
, дляx
от 0 до 10. - Сложный вариант. Требуется дополнительно написать функцию
parse
, осуществляющую разбор выражений, записанных в обратной польской записи. Например, результатомparse("x x 2 - * x * 1 +")(5, 0, 0)
должно быть число76
. -
При выполнении задания следует обратить внимание на:
- Применение функций высшего порядка.
- Выделение общего кода для операций.