किसी व्यक्ति का एलर्जी स्कोर दिया गया है। उसके आधार पर तय कीजिए कि उसे किसी दी गई चीज़ से एलर्जी है या नहीं, और उसकी सभी एलर्जियों की पूरी सूची भी बताइए।
एक एलर्जी परीक्षण से एक ही संख्यात्मक स्कोर मिलता है, जिसमें उस व्यक्ति की उन सभी एलर्जियों की जानकारी होती है जिनकी जाँच की गई थी।
जिन चीज़ों की जाँच की गई, उनकी सूची (और उनकी वैल्यू) यह है:
तो अगर Tom को peanuts और chocolate से एलर्जी है, तो उसे 34 का स्कोर मिलता है।
अब केवल इस स्कोर 34 के आधार पर आपके प्रोग्राम को यह बता पाना चाहिए:
ध्यान दीजिए: किसी दिए गए स्कोर में ऐसे एलर्जेन भी शामिल हो सकते हैं जो ऊपर नहीं दिए गए हैं (यानी ऐसे एलर्जेन जिनका स्कोर 256, 512, 1024 वगैरह होता है)। आपके प्रोग्राम को स्कोर के उन हिस्सों को अनदेखा करना चाहिए। उदाहरण के लिए, अगर एलर्जी स्कोर 257 है, तो आपके प्रोग्राम को केवल eggs (1) की एलर्जी बतानी चाहिए।
इस अभ्यास को पूरा करने के लिए आपको Eq और Show इंस्टेंस वाला Allergen डेटा टाइप बनाना है। साथ ही ये फंक्शन लागू करने हैं:
allergiesisAllergicToएक डमी डेटा घोषणा और टाइप सिग्नेचर आपको पहले से दिए हुए मिलेंगे। लेकिन फंक्शन बनाना और एक सार्थक डेटा टाइप, newtype या टाइप सिनोनिम तैयार करना आपका काम है।
Exercism पर साइन अप कीजिए और Haskell को 107 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।
हम बिट शिफ्टिंग, बिटवाइज़ तुलना और बाइनरी संख्या से जुड़े दूसरे कॉन्सेप्ट देखते हैं! हम पैटर्न मैचिंग वाला एक हल भी देखते हैं, और Erlang में रिकर्शन का एक दिलचस्प तरीका भी।