ট্র্যাক
/
Haskell
Haskell
/
অনুশীলনী
/
ম্যাট্রিক্স
ম্যাট্রিক্স

ম্যাট্রিক্স

মধ্যম

নির্দেশনা

সংখ্যার একটি ম্যাট্রিক্স বোঝানো একটি স্ট্রিং দেওয়া থাকলে, সেই ম্যাট্রিক্সের সারিগুলো ও কলামগুলো রিটার্ন করুন।

তাহলে এরকম ভেতরে নিউলাইন-সহ একটি স্ট্রিং দেওয়া হলে:

9 8 7
5 3 2
6 6 7

যা এই ম্যাট্রিক্স বোঝায়:

    1  2  3
  |---------
1 | 9  8  7
2 | 5  3  2
3 | 6  6  7

আপনার কোড যেন এগুলো বের করে দিতে পারে:

  • সারিগুলোর একটি অ্যারে, যেখানে উপর থেকে নিচে সারি ধরে এগিয়ে প্রতিটি সারি বাম থেকে ডানে পড়া হয়,
  • কলামগুলোর একটি অ্যারে, যেখানে বাম থেকে ডানে এগিয়ে প্রতিটি কলাম উপর থেকে নিচে পড়া হয়।

আমাদের উদাহরণের ম্যাট্রিক্সের সারিগুলো:

  • 9, 8, 7
  • 5, 3, 2
  • 6, 6, 7

আর এর কলামগুলো:

  • 9, 5, 6
  • 8, 3, 6
  • 7, 2, 7

ইঙ্গিত

এই অনুশীলনীটি সম্পূর্ণ করতে, আপনাকে Matrix ডেটা টাইপটি তৈরি করতে হবে, যাতে Eq এবং Show ইনস্ট্যান্স থাকবে, এবং নিচের ফাংশনগুলো ইমপ্লিমেন্ট করতে হবে:

  • cols
  • column
  • flatten
  • fromList
  • fromString
  • reshape
  • row
  • rows
  • shape
  • transpose

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

ইনপুট ভ্যালিডেশনের কোনো দরকার নেই। ম্যাট্রিক্সটি আয়তাকার না হলে, অবৈধ ক্যারেক্টার পাওয়া গেলে ইত্যাদি ক্ষেত্রে এটিকে ব্যর্থ হতে দিন।

shape হলো (rows, cols)

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

ম্যাট্রিক্স শুরু করতে প্রস্তুত?

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