ট্র্যাক
/
Haskell
Haskell
/
অনুশীলনী
/
বৃষ্টির ফোঁটা
বৃষ্টির ফোঁটা

বৃষ্টির ফোঁটা

সহজ

ভূমিকা

রেইনড্রপস হলো FizzBuzz চ্যালেঞ্জের কিছুটা বেশি জটিল একটি সংস্করণ, যা একটি ক্লাসিক ইন্টারভিউ প্রশ্ন।

নির্দেশনা

আপনার কাজ হলো একটি সংখ্যাকে তার সংশ্লিষ্ট বৃষ্টির ফোঁটার শব্দে রূপান্তর করা।

যদি কোনো প্রদত্ত সংখ্যা:

  • ৩ দিয়ে বিভাজ্য হয়, ফলাফলে "Pling" যোগ করুন।
  • ৫ দিয়ে বিভাজ্য হয়, ফলাফলে "Plang" যোগ করুন।
  • ৭ দিয়ে বিভাজ্য হয়, ফলাফলে "Plong" যোগ করুন।
  • ৩, ৫ বা ৭ দিয়ে বিভাজ্য নয়, তাহলে ফলাফল হবে সংখ্যাটি স্ট্রিং হিসেবে।

উদাহরণ

  • ২৮ সংখ্যাটি ৭ দিয়ে বিভাজ্য, কিন্তু ৩ বা ৫ দিয়ে নয়, তাই ফলাফল হবে "Plong".
  • ৩০ সংখ্যাটি ৩ ও ৫ দিয়ে বিভাজ্য, কিন্তু ৭ দিয়ে নয়, তাই ফলাফল হবে "PlingPlang".
  • ৩৪ সংখ্যাটি ৩, ৫ বা ৭ কোনোটিই দিয়ে বিভাজ্য নয়, তাই ফলাফল হবে "34".
Note

একটি সংখ্যা আরেকটি সংখ্যা দিয়ে নিঃশেষে বিভাজ্য কি না তা পরীক্ষা করার একটি কমন উপায় হলো রিমেইন্ডার বা মডুলাস শূন্যের সাথে তুলনা করা। এসবের একটির (বা দুটিরই) জন্য বেশিরভাগ প্রোগ্রামিং ভাষায় অপারেটর বা ফাংশন থাকে।

ইঙ্গিত

আপনাকে convert ফাংশনটি ইমপ্লিমেন্ট করতে হবে, যা সংখ্যাকে বৃষ্টির ফোঁটার শব্দে রূপান্তর করে রিটার্ন করে। টাইপগুলো নিয়ে সংশয় থাকলে প্রদত্ত সিগনেচারটি ব্যবহার করতে পারেন, তবে সেটি যেন আপনার সৃজনশীলতাকে সীমাবদ্ধ না করে:

convert :: Int -> String

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

এই অনুশীলনীর একটি ঐচ্ছিক বাড়তি অংশ হিসেবে আপনি করতে পারেন

import qualified Data.Text as T
import           Data.Text (Text)
  • এখন আপনি যেমন convert :: Int -> Text লিখতে পারেন এবং Data.Text-এর কম্বিনেটরগুলোকে যেমন T.pack হিসেবে উল্লেখ করতে পারেন।
  • Data.Text-এর ডকুমেন্টেশন দেখে নিন,
  • এরপর আপনি Raindrops.hs-এ String-এর সব উপস্থিতি Text দিয়ে প্রতিস্থাপন করতে পারেন:
convert :: Int -> Text

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

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

বৃষ্টির ফোঁটা শুরু করতে প্রস্তুত?

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

ডিপ ডাইভ: বৃষ্টির ফোঁটা!

কিছু সমাধান ঘুরে দেখুন, যেখানে আছে ফাংশনাল পাইপলাইন, ম্যাট্রিক্স গুণ, ম্যাক্রো দিয়ে তৈরি আগেই হিসাব করে রাখা টেবিল-ভিত্তিক সমাধান, অবজেক্ট ওরিয়েন্টেড পদ্ধতি, Python ও TCL-এর চমকপ্রদ ব্যবহার, আর একটি এন্টারপ্রাইজ সংস্করণ।