কোনো ব্যক্তির অ্যালার্জি স্কোর দেওয়া থাকলে, নির্দিষ্ট কোনো আইটেমে তার অ্যালার্জি আছে কি না এবং তার সম্পূর্ণ অ্যালার্জির তালিকা নির্ধারণ করুন।
একটি অ্যালার্জি পরীক্ষা একটি একক সংখ্যাগত স্কোর তৈরি করে, যেটিতে পরীক্ষা করা ওই ব্যক্তির সব অ্যালার্জির তথ্য থাকে।
যে আইটেমগুলো (এবং তাদের মান) পরীক্ষা করা হয়েছিল সেগুলো হলো:
তাই Tom-এর যদি peanuts আর chocolate-এ অ্যালার্জি থাকে, তবে সে 34 স্কোর পায়।
এখন কেবল সেই 34 স্কোরটি দেওয়া থাকলে, আপনার প্রোগ্রামের এটি বলতে পারা উচিত:
দ্রষ্টব্য: একটি নির্দিষ্ট স্কোরে উপরে তালিকাভুক্ত না থাকা অ্যালার্জেনও থাকতে পারে (অর্থাৎ যেসব অ্যালার্জেনের স্কোর 256, 512, 1024 ইত্যাদি)। আপনার প্রোগ্রামের স্কোরের সেই অংশগুলো উপেক্ষা করা উচিত। যেমন, অ্যালার্জি স্কোর 257 হলে, আপনার প্রোগ্রামের কেবল eggs (1) অ্যালার্জিটির কথা জানানো উচিত।
এই অনুশীলনীটি সম্পূর্ণ করতে আপনাকে Allergen নামের একটি ডেটা টাইপ তৈরি করতে হবে, যার Eq ও Show ইনস্ট্যান্স থাকবে, এবং নিচের ফাংশনগুলি ইমপ্লিমেন্ট করতে হবে:
allergiesisAllergicToএকটি ডামি ডেটা ডিক্লারেশন আর টাইপ সিগনেচার আগে থেকেই দেওয়া আছে, কিন্তু ফাংশনগুলি ডিফাইন করা এবং একটি অর্থবহ ডেটা টাইপ, newtype বা টাইপ সিনোনিম তৈরি করা আপনার দায়িত্ব।
Exercism-এ সাইন আপ করুন, Haskell ট্র্যাকের 107টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।
আমরা বিট শিফটিং, বিটওয়াইজ তুলনা আর বাইনারি সংখ্যার অন্যান্য ধারণা ঘুরে দেখি! প্যাটার্ন ম্যাচিং ব্যবহার করা একটি সমাধানও দেখি, আর Erlang-এ রিকার্শন দিয়ে করা একটি মজার পদ্ধতিও।