ট্র্যাক
/
Haskell
Haskell
/
অনুশীলনী
/
রেজিস্টর কালার ডুও
রেজিস্টর কালার ডুও

রেজিস্টর কালার ডুও

সহজ

নির্দেশনা

আপনি যদি Raspberry Pi দিয়ে কিছু বানাতে চান, তাহলে সম্ভবত আপনার রেজিস্টর লাগবে। এই অনুশীলনীর জন্য আপনাকে সেগুলো সম্পর্কে দুটি বিষয় জানতে হবে:

  • প্রতিটি রেজিস্টরের একটি রেজিস্ট্যান্স মান থাকে।
  • রেজিস্টরগুলো ছোট, এতটাই ছোট যে সেগুলোর গায়ে রেজিস্ট্যান্স মান লিখে দিলে সেটি পড়া কঠিন হয়ে যেত।

এই সমস্যা এড়াতে প্রস্তুতকারকেরা রেজিস্টরের গায়ে রঙের কোড দেওয়া ব্যান্ড ছাপিয়ে দেন, যা দিয়ে রেজিস্ট্যান্স মান বোঝানো হয়। প্রতিটি ব্যান্ডের একটি অবস্থান এবং একটি সংখ্যামূলক মান থাকে।

রেজিস্টরের প্রথম ২টি ব্যান্ডের এনকোডিং স্কিম সহজ: প্রতিটি রং একটি একক সংখ্যায় ম্যাপ হয়। উদাহরণস্বরূপ, যদি তারা একটি brown ব্যান্ড (মান 1) তারপর একটি green ব্যান্ড (মান 5) ছাপাত, তাহলে সেটি 15 সংখ্যাটি বোঝাত।

এই অনুশীলনীতে আপনি একটি সহায়ক প্রোগ্রাম বানাবেন, যাতে ব্যান্ডগুলোর মান আপনাকে মুখস্থ রাখতে না হয়। প্রোগ্রামটি ইনপুট হিসেবে রঙের নাম নেবে এবং একটি দুই অঙ্কের সংখ্যা আউটপুট দেবে, এমনকি ইনপুটে দুটির বেশি রং থাকলেও!

ব্যান্ডের রংগুলো এভাবে এনকোড করা:

  • black: 0
  • brown: 1
  • red: 2
  • orange: 3
  • yellow: 4
  • green: 5
  • blue: 6
  • violet: 7
  • grey: 8
  • white: 9

উপরের উদাহরণ থেকে: brown-green থেকে 15 রিটার্ন করা উচিত, এবং brown-green-violet থেকেও 15 রিটার্ন করা উচিত, তৃতীয় রংটি উপেক্ষা করে।

ইঙ্গিত

আপনার ফাংশনটি ইমপ্লিমেন্ট করতে হবে

value :: (Color, Color) -> Int

যা কেবল দুটি রং নেয় এবং রেজিস্টরের রেজিস্ট্যান্সের সংখ্যাসূচক মানের উপাদানটি তৈরি করে।

বোনাস - প্রপার্টি টেস্টিং:

এই অনুশীলনীটি কিছু প্রপার্টি টেস্ট লেখার একটি ভালো সুযোগ। আপনি যদি আগে কখনো প্রপার্টি টেস্ট না লিখে থাকেন, তাহলে এখানে কিছু রিসোর্স আছে:

  1. School of Haskell.
  2. Real world Haskell

আমরা টেস্ট ফাইলে একটি নমুনা QuickCheck প্রপার্টি টেস্ট দিয়েছি।

যে প্রপার্টিগুলো টেস্ট করা যায় তার উদাহরণ:

  • value (x, y) >= 10, এমন সব (x, y)-এর জন্য যেখানে x Black নয়

  • value (x, y)-এর ওপর show কল করলে value (y, x)-এর ওপর show কল করার reverse স্ট্রিং উৎপন্ন হয়।

  • সব রঙের নাম অনন্য। (যেকোনো দুটি রঙের জন্য, রঙ দুটি আলাদা হলে নামও আলাদা।)

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Haskell Exercism

রেজিস্টর কালার ডুও শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Haskell ট্র্যাকের 107টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।