Замыкания и генератор последовательности с памятью
JavaScript
Сложный
closures
Задача «Замыкания и генератор последовательности с памятью»
Реализуйте функцию createSequenceGenerator, которая принимает начальное значение и шаг. Функция возвращает объект с двумя методами: next() и reset(). Метод next() возвращает следующее значение последовательности (начиная с начального, увеличивая на шаг каждый вызов). Метод reset() сбрасывает последовательность к начальному значению. Дополнительно, метод next() должен запоминать все сгенерированные значения в массиве, доступном через свойство history объекта. Свойство history должно быть защищено от прямого изменения извне, но должно быть читаемым. Используйте замыкания для инкапсуляции состояния.
Формат ввода
Первая строка: начальное значение (целое число). Вторая строка: шаг (целое число). Далее строка с командами: 'next' (вызов next()) или 'reset' (вызов reset()). Команды повторяются до конца ввода.
Формат вывода
Для каждой команды 'next' выведите текущее значение последовательности. Для 'reset' ничего не выводите.
Примеры
Пример 1
ВВОД
10
-3
next
next
next
reset
next
ВЫВОД
10
7
4
10
Пример 2
ВВОД
2
7 13
ВЫВОД
91
main.js