矩阵

矩阵

中等

说明

给定一个表示数字矩阵的字符串,返回该矩阵的行和列。

例如,给定下面这个包含换行符的字符串:

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,全部免费。