Abschlüsse und Generator einer Sequenz mit Gedächtnis

JavaScript Hard closures

Aufgabe «Abschlüsse und Generator einer Sequenz mit Gedächtnis»

Implementieren Sie die Funktion createSequenceGenerator, die einen Startwert und eine Schrittweite akzeptiert. Die Funktion gibt ein Objekt mit zwei Methoden zurück: next() und reset(). Die Methode next() gibt den nächsten Wert der Sequenz zurück (beginnend mit dem Startwert, bei jedem Aufruf um die Schrittweite erhöht). Die Methode reset() setzt die Sequenz auf den Startwert zurück. Zusätzlich soll die Methode next() alle generierten Werte in einem Array speichern, das über die Eigenschaft history des Objekts zugänglich ist. Die Eigenschaft history sollte vor direkter Änderung von außen geschützt, aber lesbar sein. Verwenden Sie Abschlüsse zur Kapselung des Zustands.

Eingabeformat

Erste Zeile: Startwert (ganze Zahl). Zweite Zeile: Schrittweite (ganze Zahl). Danach eine Zeile mit Befehlen: 'next' (Aufruf von next()) oder 'reset' (Aufruf von reset()). Die Befehle wiederholen sich bis zum Ende der Eingabe.

Ausgabeformat

Geben Sie für jeden Befehl 'next' den aktuellen Wert der Sequenz aus. Für 'reset' geben Sie nichts aus.

Beispiele

Beispiel 1

EINGABE
10 -3 next next next reset next
AUSGABE
10 7 4 10

Beispiel 2

EINGABE
2 7 13
AUSGABE
91
main.js