闭包与带记忆的序列生成器
JavaScript
Hard
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