ডায়মন্ড কাটা ইনপুট হিসেবে একটি বর্ণ নেয় এবং সেটিকে হীরার আকারে আউটপুট দেয়। একটি বর্ণ দেওয়া হলে এটি 'A' দিয়ে শুরু করে একটি হীরা আউটপুট দেয়, যেখানে সরবরাহ করা বর্ণটি সবচেয়ে চওড়া জায়গায় থাকে।
নিচের উদাহরণগুলোতে স্পেস বোঝাতে · অক্ষর ব্যবহার করা হয়েছে।
'A' বর্ণের জন্য হীরা:
A
'C' বর্ণের জন্য হীরা:
··A··
·B·B·
C···C
·B·B·
··A··
'E' বর্ণের জন্য হীরা:
····A····
···B·B···
··C···C··
·D·····D·
E·······E
·D·····D·
··C···C··
···B·B···
····A····
আপনাকে diamond ফাংশনটি ইমপ্লিমেন্ট করতে হবে, যা A থেকে শুরু হয়ে একটি ডায়মন্ড প্রিন্ট করে এবং যার সবচেয়ে প্রশস্ত বিন্দুতে থাকে প্রদত্ত ক্যারেক্টারটি। টাইপ নিয়ে নিশ্চিত না থাকলে দেওয়া সিগনেচারটি ব্যবহার করতে পারেন, তবে তা যেন আপনার সৃজনশীলতাকে সীমাবদ্ধ না করে:
diamond :: Char -> Maybe [String]
এই অনুশীলনীটি টেক্সট ডেটা নিয়ে কাজ করে। ঐতিহাসিক কারণে হাস্কেলের String টাইপ [Char]-এর সমার্থক, অর্থাৎ ক্যারেক্টারের একটি অ্যারে। টেক্সট ডেটা আরও দক্ষভাবে সামলাতে Text টাইপটি ব্যবহার করা যায়।
এই অনুশীলনীর একটি ঐচ্ছিক সম্প্রসারণ হিসেবে আপনি করতে পারেন
- text যোগ করুন।Data.Text নিচের পদ্ধতিতে ইমপোর্ট করুন:import qualified Data.Text as T
import Data.Text (Text)
diamond :: Char -> Maybe [Text], এবং Data.Text-এর কম্বিনেটরগুলো উল্লেখ করতে পারেন যেমন T.pack,Data.Text-এর ডকুমেন্টেশন দেখে নিন,String-এর সব জায়গায় Text বসাতে পারেন:diamond :: Char -> Maybe [Text]
এই অংশটি সম্পূর্ণ ঐচ্ছিক।
Exercism-এ সাইন আপ করুন, Haskell ট্র্যাকের 107টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।