ماتریس

ماتریس

متوسط

دستورالعمل‌ها

فرض کنید رشته‌ای دارید که نمایانگر یک ماتریس از اعداد است. سطرها و ستون‌های آن ماتریس را برگردانید.

حالا رشته‌ای را در نظر بگیرید که در آن خطوط جدید جاسازی شده‌اند، مانند:

9 8 7
5 3 2
6 6 7

که نمایانگر این ماتریس است:

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

Code شما باید بتواند موارد زیر را بیرون بدهد:

  • فهرستی از سطرها، به این ترتیب که هر سطر از چپ به راست خوانده می‌شود و سطرها از بالا به پایین پیمایش می‌شوند،
  • فهرستی از ستون‌ها، به این ترتیب که هر ستون از بالا به پایین خوانده می‌شود و ستون‌ها از چپ به راست پیمایش می‌شوند.

سطرهای ماتریس نمونه‌ی ما:

  • 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

یک اعلان داده‌ی ساختگی و امضاهای نوع از قبل در جای خود قرار دارند، اما تعریف این توابع و ساختن یک نوع داده، newtype یا type synonym معنادار بر عهده‌ی خودتان است.

اعتبارسنجی ورودی لازم نیست. اگر ماتریس مستطیلی نباشد، کاراکتر نامعتبری دیده شود و از این قبیل موارد، بگذارید خطا بدهد.

shape برابر (rows, cols) است.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Haskell Exercism

آماده‌اید ماتریس را شروع کنید؟

در Exercism ثبت‌نام کنید تا Haskell را همراه با 107 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.