Fermetures et générateur de séquence avec mémoire

JavaScript Hard closures

Tâche «Fermetures et générateur de séquence avec mémoire»

Implémentez la fonction createSequenceGenerator qui prend une valeur initiale et un pas. La fonction retourne un objet avec deux méthodes : next() et reset(). La méthode next() retourne la valeur suivante de la séquence (en commençant par la valeur initiale, en augmentant du pas à chaque appel). La méthode reset() réinitialise la séquence à la valeur initiale. De plus, la méthode next() doit mémoriser toutes les valeurs générées dans un tableau accessible via la propriété history de l’objet. La propriété history doit être protégée contre toute modification directe depuis l’extérieur, mais doit être lisible. Utilisez des fermetures pour encapsuler l’état.

Format d\ entrée

Première ligne : valeur initiale (nombre entier). Deuxième ligne : pas (nombre entier). Ensuite, une ligne avec une commande : 'next' (appel de next()) ou 'reset' (appel de reset()). Les commandes se répètent jusqu’à la fin de l’entrée.

Format de sortie

Pour chaque commande 'next', affichez la valeur actuelle de la séquence. Pour 'reset', n’affichez rien.

Exemples

Exemple 1

ENTRÉE
10 -3 next next next reset next
SORTIE
10 7 4 10

Exemple 2

ENTRÉE
2 7 13
SORTIE
91
main.js