আপনি যদি Raspberry Pi দিয়ে কিছু বানাতে চান, তাহলে সম্ভবত আপনার রেজিস্টর লাগবে। এই অনুশীলনীর জন্য আপনাকে সেগুলো সম্পর্কে দুটি বিষয় জানতে হবে:
এই সমস্যা এড়াতে প্রস্তুতকারকেরা রেজিস্টরের গায়ে রঙের কোড দেওয়া ব্যান্ড ছাপিয়ে দেন, যা দিয়ে রেজিস্ট্যান্স মান বোঝানো হয়। প্রতিটি ব্যান্ডের একটি অবস্থান এবং একটি সংখ্যামূলক মান থাকে।
রেজিস্টরের প্রথম ২টি ব্যান্ডের এনকোডিং স্কিম সহজ: প্রতিটি রং একটি একক সংখ্যায় ম্যাপ হয়। উদাহরণস্বরূপ, যদি তারা একটি brown ব্যান্ড (মান 1) তারপর একটি green ব্যান্ড (মান 5) ছাপাত, তাহলে সেটি 15 সংখ্যাটি বোঝাত।
এই অনুশীলনীতে আপনি একটি সহায়ক প্রোগ্রাম বানাবেন, যাতে ব্যান্ডগুলোর মান আপনাকে মুখস্থ রাখতে না হয়। প্রোগ্রামটি ইনপুট হিসেবে রঙের নাম নেবে এবং একটি দুই অঙ্কের সংখ্যা আউটপুট দেবে, এমনকি ইনপুটে দুটির বেশি রং থাকলেও!
ব্যান্ডের রংগুলো এভাবে এনকোড করা:
উপরের উদাহরণ থেকে: brown-green থেকে 15 রিটার্ন করা উচিত, এবং brown-green-violet থেকেও 15 রিটার্ন করা উচিত, তৃতীয় রংটি উপেক্ষা করে।
আপনার ফাংশনটি ইমপ্লিমেন্ট করতে হবে
value :: (Color, Color) -> Int
যা কেবল দুটি রং নেয় এবং রেজিস্টরের রেজিস্ট্যান্সের সংখ্যাসূচক মানের উপাদানটি তৈরি করে।
বোনাস - প্রপার্টি টেস্টিং:
এই অনুশীলনীটি কিছু প্রপার্টি টেস্ট লেখার একটি ভালো সুযোগ। আপনি যদি আগে কখনো প্রপার্টি টেস্ট না লিখে থাকেন, তাহলে এখানে কিছু রিসোর্স আছে:
আমরা টেস্ট ফাইলে একটি নমুনা QuickCheck প্রপার্টি টেস্ট দিয়েছি।
যে প্রপার্টিগুলো টেস্ট করা যায় তার উদাহরণ:
value (x, y) >= 10, এমন সব (x, y)-এর জন্য যেখানে x Black নয়
value (x, y)-এর ওপর show কল করলে value (y, x)-এর ওপর show কল করার reverse স্ট্রিং উৎপন্ন হয়।
সব রঙের নাম অনন্য। (যেকোনো দুটি রঙের জন্য, রঙ দুটি আলাদা হলে নামও আলাদা।)
Exercism-এ সাইন আপ করুন, Haskell ট্র্যাকের 107টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।