রোবট ফ্যাক্টরির সেটিংস পরিচালনা করুন।
ফ্যাক্টরি ফ্লোর থেকে বেরোনোর সময় রোবটের কোনো নাম থাকে না।
আপনি যখন প্রথমবার একটি রোবট চালু করেন, তখন দুইটি বড় হাতের অক্ষরের পর তিনটি সংখ্যা, এই ফরম্যাটে একটি এলোমেলো নাম তৈরি হয়, যেমন RX837 বা BC811।
মাঝে মাঝে আমাদের একটি রোবটকে তার ফ্যাক্টরি সেটিংসে রিসেট করতে হয়, অর্থাৎ তার নাম মুছে যায়। পরেরবার আপনি জিজ্ঞাসা করলে ওই রোবট নতুন একটি এলোমেলো নাম জানাবে।
নামগুলো এলোমেলো হতে হবে: সেগুলো এমন কোনো ক্রম অনুসরণ করবে না যা আগে থেকে আন্দাজ করা যায়। এলোমেলো নাম ব্যবহারের মানে হলো কোলিশনের ঝুঁকি। আপনার সমাধানকে নিশ্চিত করতে হবে যে প্রতিটি বিদ্যমান রোবটের নাম অনন্য।
এই অনুশীলনীটি সম্পূর্ণ করতে, আপনাকে একটি মিউটেবল ভ্যারিয়েবল হিসেবে Robot ডেটা টাইপ এবং RunState ডেটা টাইপ তৈরি করতে হবে। এছাড়াও আপনাকে নিচের ফাংশনগুলো ইমপ্লিমেন্ট করতে হবে:
initialStatemkRobotresetNamerobotNameএকটি ডামি ডেটা ডিক্লারেশন এবং টাইপ সিগনেচার আগেই দেওয়া আছে, তবে ফাংশনগুলো ডিফাইন করা এবং একটি অর্থপূর্ণ ডেটা টাইপ, নিউটাইপ বা টাইপ সিনোনিম তৈরি করা আপনার দায়িত্ব। স্টেট মডেল করতে এই অনুশীলনীটি State মোনাড ব্যবহার করে। আরও নির্দিষ্টভাবে, আমরা StateT monad transfomers ব্যবহার করে State মোনাডের সাথে IO মোনাড একত্র করি। সব টেস্ট initialState-কে evalStateT-এ দেওয়া স্টেট হিসেবে রান করা হয়।
Exercism-এ সাইন আপ করুন, Haskell ট্র্যাকের 107টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।