Маємо рядок тексту (англ. string), який представляє матрицю чисел. Повернімо рядки та стовпці цієї матриці.
Отже, якщо маємо рядок тексту із вбудованими символами нового рядка, як ось:
9 8 7
5 3 2
6 6 7
що представляє таку матрицю:
1 2 3
|---------
1 | 9 8 7
2 | 5 3 2
3 | 6 6 7
наш код має вміти видавати:
Рядки для нашої прикладової матриці:
А ось її стовпці:
Щоб виконати цю вправу, створіть тип даних Matrix з екземплярами Eq та Show і реалізуйте такі функції:
colscolumnflattenfromListfromStringreshaperowrowsshapetransposeУ файлі вже є заготовка оголошення даних і сигнатури типів, але функції потрібно визначити самостійно та створити осмислений тип даних, newtype або синонім типу.
Перевіряти вхідні дані не потрібно. Нехай програма падає, якщо матриця не прямокутна, трапляються недопустимі символи тощо.
shape повертає (rows, cols)