【发布时间】:2017-10-16 10:09:59
【问题描述】:
使用 (9x9) 矩阵的自制定义,该矩阵描述为Maybe Ints 的列表列表。我想创建一个返回矩阵的 9 列的函数。我想做这样的事情:
cols :: Matrix a -> [Block a]
cols matrix = map (!! n) matrix
where
n = (the values 1 .. 9)
矩阵被描述为
[Rows]或[[values]]块被描述为
[a]
所以我希望输出是一个列表列表,其中这些列表是行的第一个元素、行的第二个元素等的列表。
我明白了
map (!! 1) matrix
将返回行的第二个元素的列表,即矩阵的第二列;但我不知道如何在一个不错的函数中将此扩展到矩阵的所有列。
【问题讨论】:
-
为了参考(我意识到你的目标是自己实现它):你想
transposethe list of lists。 -
这完全正确,一开始我没有意识到 transpose 是这样做的,但@Ami Tavroy 正在使用我想了解更多的确切方法。谢谢你们!
标签: list haskell matrix transpose