क्लोजर और मेमोरी के साथ अनुक्रम जनरेटर
JavaScript
Hard
closures
कार्य «क्लोजर और मेमोरी के साथ अनुक्रम जनरेटर»
एक फ़ंक्शन createSequenceGenerator बनाएं जो प्रारंभिक मान और चरण (step) लेता है। फ़ंक्शन दो विधियों वाला एक ऑब्जेक्ट लौटाता है: 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