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