Closures y generador de secuencia con memoria
JavaScript
Hard
closures
Tarea «Closures y generador de secuencia con memoria»
Implementa la función createSequenceGenerator, que toma un valor inicial y un paso. La función devuelve un objeto con dos métodos: next() y reset(). El método next() devuelve el siguiente valor de la secuencia (comenzando desde el inicial, incrementando en el paso en cada llamada). El método reset() restablece la secuencia al valor inicial. Adicionalmente, el método next() debe recordar todos los valores generados en un arreglo, accesible a través de la propiedad history del objeto. La propiedad history debe estar protegida contra modificaciones directas desde el exterior, pero debe ser legible. Utiliza closures para encapsular el estado.
Formato de entrada
Primera línea: valor inicial (número entero). Segunda línea: paso (número entero). Luego una línea con comandos: 'next' (llamar a next()) o 'reset' (llamar a reset()). Los comandos se repiten hasta el final de la entrada.
Formato de salida
Para cada comando 'next', imprime el valor actual de la secuencia. Para 'reset', no imprimas nada.
Ejemplos
Ejemplo 1
ENTRADA
10
-3
next
next
next
reset
next
SALIDA
10
7
4
10
Ejemplo 2
ENTRADA
2
7 13
SALIDA
91
main.js