রোবটের নাম

রোবটের নাম

মধ্যম

নির্দেশনা

রোবট ফ্যাক্টরির সেটিংস পরিচালনা করুন।

ফ্যাক্টরি ফ্লোর থেকে বেরোনোর সময় রোবটের কোনো নাম থাকে না।

আপনি যখন প্রথমবার একটি রোবট চালু করেন, তখন দুইটি বড় হাতের অক্ষরের পর তিনটি সংখ্যা, এই ফরম্যাটে একটি এলোমেলো নাম তৈরি হয়, যেমন RX837 বা BC811।

মাঝে মাঝে আমাদের একটি রোবটকে তার ফ্যাক্টরি সেটিংসে রিসেট করতে হয়, অর্থাৎ তার নাম মুছে যায়। পরেরবার আপনি জিজ্ঞাসা করলে ওই রোবট নতুন একটি এলোমেলো নাম জানাবে।

নামগুলো এলোমেলো হতে হবে: সেগুলো এমন কোনো ক্রম অনুসরণ করবে না যা আগে থেকে আন্দাজ করা যায়। এলোমেলো নাম ব্যবহারের মানে হলো কোলিশনের ঝুঁকি। আপনার সমাধানকে নিশ্চিত করতে হবে যে প্রতিটি বিদ্যমান রোবটের নাম অনন্য।

ইঙ্গিত

এই অনুশীলনীটি সম্পূর্ণ করতে, আপনাকে একটি মিউটেবল ভ্যারিয়েবল হিসেবে Robot ডেটা টাইপ এবং RunState ডেটা টাইপ তৈরি করতে হবে। এছাড়াও আপনাকে নিচের ফাংশনগুলো ইমপ্লিমেন্ট করতে হবে:

  • initialState
  • mkRobot
  • resetName
  • robotName

একটি ডামি ডেটা ডিক্লারেশন এবং টাইপ সিগনেচার আগেই দেওয়া আছে, তবে ফাংশনগুলো ডিফাইন করা এবং একটি অর্থপূর্ণ ডেটা টাইপ, নিউটাইপ বা টাইপ সিনোনিম তৈরি করা আপনার দায়িত্ব। স্টেট মডেল করতে এই অনুশীলনীটি State মোনাড ব্যবহার করে। আরও নির্দিষ্টভাবে, আমরা StateT monad transfomers ব্যবহার করে State মোনাডের সাথে IO মোনাড একত্র করি। সব টেস্ট initialState-কে evalStateT-এ দেওয়া স্টেট হিসেবে রান করা হয়।


সূত্র

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

রোবটের নাম শুরু করতে প্রস্তুত?

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