在Haskell中穿越无限矩阵

时间:2018-11-03 01:29:17

标签: haskell matrix functional-programming

我想编写一个可以以Z字形方式遍历无限矩阵的函数。我希望在没有任何外部输入的情况下执行此操作,无需索引到矩阵,并且主要条件是矩阵是无限的。

例如,

1 2 3 ...

4 5 6 ...

7 8 9 ...

............

应提供[1,4,2,7,5,3 ....]

由于此计算基本上是构成矩阵的所有后向对角线的串联,因此我继续弄清楚如何获得前向对角线。如果我尝试使用向后对角线的类似方法,则可能需要反转列表。

当前,我有:

nums :: [Int]
nums = [1..]

fwdDiagonal :: [[a]] -> [a]
fwdDiagonal ((x:_):rows) = x : diagonal (map tail rows)

任何指导将不胜感激。

0 个答案:

没有答案