Тема  4. Функции

Содержание

  1. JavaScript и Java
    1. Появление и история JavaScript/ECMAScript
    2. Связь с Java
    3. Различия с Java
    4. Strict mode
  2. Переменные и типы
    1. Объявление переменных
    2. Типы значений
    3. Массивы
  3. Простые функции
    1. Синтаксис объвления
    2. Передача аргументов
    3. Способы вызова
    4. Стрелочные функции
  4. Функции высших порядков
    1. Примеры
      1. Сортировка
      2. Компараторы
      3. Составные компараторы
      4. Функциональные интерфейсы
    2. Комбинаторы
      1. foldLeft, foldRight
      2. map
      3. Композиция
      4. Карринг

Домашнее задание 6. Функциональные выражения на JavaScript

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