Матриця

Матриця

Середня

Вказівки

Маємо рядок тексту (англ. 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

наш код має вміти видавати:

  • список рядків, читаючи кожен рядок зліва направо, просуваючись згори вниз;
  • список стовпців, читаючи кожен стовпець згори вниз, просуваючись зліва направо.

Рядки для нашої прикладової матриці:

  • 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 або синонім типу.

Перевіряти вхідні дані не потрібно. Нехай програма падає, якщо матриця не прямокутна, трапляються недопустимі символи тощо.

shape повертає (rows, cols)

Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Haskell Exercism

Час розпочати Матриця?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Haskell, а також 107 вправ та справжнє наставництво від людей, і все це безкоштовно.