Bob

Bob

সহজ

ভূমিকা

Bob একজন উদাসীন কিশোর। সে মনে করে সে খুব কুল। আর সে কোনো কিছু নিয়ে একদমই উত্তেজিত হয় না। সেটা কুল হতো না।

মানুষ যখন তার সঙ্গে কথা বলে, তখন তার জবাবগুলো বেশ সীমিত।

নির্দেশনা

কেউ ববকে কিছু বললে বা তাকে কোনো প্রশ্ন করলে বব কী উত্তর দেবে, তা বের করাই আপনার কাজ।

বব কেবল পাঁচটি জিনিসের একটি দিয়েই উত্তর দেয়:

  • "Sure." আপনি তাকে কোনো প্রশ্ন করলে, যেমন "How are you?", এটিই তার উত্তর। প্রশ্নের ক্ষেত্রে যে রীতি মানা হয় তা হলো এটি প্রশ্নচিহ্ন দিয়ে শেষ হয়।
  • "Whoa, chill out!" আপনি যদি তাকে চিৎকার করে কিছু বলেন, এটিই তার উত্তর। চিৎকারের ক্ষেত্রে যে রীতি মানা হয় তা হলো সব বড় হাতের অক্ষর।
  • "Calm down, I know what I'm doing!" আপনি যদি চিৎকার করে তাকে কোনো প্রশ্ন করেন, তখন সে এটিই বলে।
  • "Fine. Be that way!" নীরবতার জবাবে সে এভাবেই উত্তর দেয়। নীরবতার ক্ষেত্রে যে রীতি মানা হয় তা হলো কিছু না বলা, অথবা বিভিন্ন ধরনের হোয়াইটস্পেস ক্যারেক্টারের সমন্বয়।
  • "Whatever." অন্য যেকোনো কিছুর জবাবে সে এটিই উত্তর দেয়।

ইঙ্গিত

আপনাকে responseFor ফাংশনটি ইমপ্লিমেন্ট করতে হবে, যা একটি নির্দিষ্ট ইনপুটের জন্য ববের উত্তর রিটার্ন করে। টাইপগুলো নিয়ে নিশ্চিত না থাকলে আপনি দেওয়া সিগনেচারটি ব্যবহার করতে পারেন, তবে সেটি যেন আপনার সৃজনশীলতাকে সীমিত না করে:

responseFor :: String -> String

এই অনুশীলনীটি সমাধান করতে আপনি পড়ে দেখতে পারেন:

এই অনুশীলনীটি টেক্সট ডেটা নিয়ে কাজ করে। ঐতিহাসিক কারণে Haskell-এর String টাইপ [Char]-এর সমার্থক, অর্থাৎ ক্যারেক্টারের একটি অ্যারে। টেক্সট ডেটা আরও দক্ষভাবে হ্যান্ডেল করার জন্য Text টাইপটি ব্যবহার করা যায়।

এই অনুশীলনীর ঐচ্ছিক সম্প্রসারণ হিসেবে আপনি পারেন:

  • Haskell-এ স্ট্রিং টাইপগুলো সম্পর্কে পড়ুন।

  • package.yaml-এ আপনার ডিপেন্ডেন্সির তালিকায় - text যোগ করুন।

  • Data.Text নিচের পদ্ধতিতে ইমপোর্ট করুন:

    import qualified Data.Text as T
    import           Data.Text (Text)
    
  • এখন আপনি যেমন responseFor :: Text -> Text লিখতে পারেন এবং Data.Text-এর কম্বিনেটরগুলোকে যেমন T.isSuffixOf হিসেবে উল্লেখ করতে পারেন।

  • Data.Text-এর ডকুমেন্টেশন দেখে নিন,

  • এরপর আপনি Bob.hs-এ String-এর সব জায়গায় Text বসাতে পারেন:

    responseFor :: Text -> Text
    

এই অংশটি সম্পূর্ণ ঐচ্ছিক।

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

Bob শুরু করতে প্রস্তুত?

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