रोबोट फैक्ट्री की सेटिंग्स संभालिए।
जब कोई रोबोट फैक्ट्री से निकलता है, तब उसका कोई नाम नहीं होता।
जब आप किसी रोबोट को पहली बार चालू करते हैं, तो दो बड़े अक्षरों के बाद तीन अंकों के फॉर्मेट में एक यादृच्छिक नाम बनाया जाता है, जैसे RX837 या BC811.
कभी-कभी हमें किसी रोबोट को उसकी फैक्ट्री सेटिंग्स पर रीसेट करना पड़ता है, जिसका मतलब है कि उसका नाम मिट जाता है। अगली बार जब आप पूछेंगे, तो वह रोबोट एक नया यादृच्छिक नाम बताएगा।
नाम यादृच्छिक होने चाहिए: वे ऐसे क्रम का पालन नहीं करने चाहिए जिसका पहले से अनुमान लगाया जा सके। यादृच्छिक नाम इस्तेमाल करने पर नाम टकराने का जोखिम रहता है। आपके हल को यह सुनिश्चित करना होगा कि हर मौजूदा रोबोट का नाम यूनिक हो।
इस अभ्यास को पूरा करने के लिए आपको Robot डेटा टाइप बनाना है, और वह भी एक परिवर्तनीय वेरिएबल के रूप में, तथा RunState डेटा टाइप भी बनाना है। इसके अलावा आपको ये फंक्शन लागू करने हैं:
initialStatemkRobotresetNamerobotNameफाइल में पहले से एक डमी डेटा डिक्लेरेशन और टाइप सिग्नेचर मौजूद मिलेंगे, लेकिन फंक्शन आपको खुद बनाने हैं और एक काम का डेटा टाइप, newtype या टाइप सिनोनिम तय करना भी आपका ही काम है। इस अभ्यास में स्थिति को दर्शाने के लिए State मोनाड का इस्तेमाल किया जाता है। और खास तौर पर, हम State मोनाड को IO मोनाड के साथ StateT मोनाड ट्रांसफॉर्मर की मदद से जोड़ते हैं। सभी टेस्ट ऐसे चलाए जाते हैं कि initialState को evalStateT को दी जाने वाली स्थिति बनाया जाता है।
Exercism पर साइन अप कीजिए और Haskell को 107 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।