矩陣

矩陣

中等

說明

給定一個代表數字矩陣的字串,回傳該矩陣的列與欄。

例如,給定一個內嵌換行的字串:

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,透過 107 個練習 和真人引導來學習並精通 Haskell,全部免費。