Skip to content

Latest commit

 

History

History
56 lines (43 loc) · 1.87 KB

Exercises.ru.md

File metadata and controls

56 lines (43 loc) · 1.87 KB

Замыкания и чеининг

  1. Реализуйте функцию seq(...args) с использованием замыканий и чеининга, которая может быть вызвана по цепочке с произвольным количеством функций, а первый вызов со значением типа Number приведет к исполнению переданных ранее функций и возвращаемый результат должен быть, как в приведенных примерах:
seq(x => x + 7)
   (x => x * 2)(5)

// Результат: 17
seq(x => x * 2)
   (x => x + 7)(5)

// Результат: 24
seq(x => x + 1)
   (x => x * 2)
   (x => x / 3)
   (x => x - 4)(7)

// Результат: 3
  1. Реализуйте функцию array() создающую функциональный объект, который содержит массив в своем замыкании и обеспечивает следующий интерфейс доступа к нему:
  • Создание нового экземпляра const a = array();
  • Получение элемента по индексу a(i)
  • Добавление элемента в конец a.push(value)
  • Удаление последнего элемента и получение его значения a.pop()

Пример использования:

const arr = array();

arr.push('first');
arr.push('second');
arr.push('third');

console.log(arr(0)); // Выводит: first
console.log(arr(1)); // Выводит: second
console.log(arr(2)); // Выводит: third

console.log(arr.pop()); // Выводит: third
console.log(arr.pop()); // Выводит: second
console.log(arr.pop()); // Выводит: first

console.log(arr.pop()); // Выводит: undefined