相关疑难解决方法(0)

在Haskell中获取矩阵的所有对角线

二维列表如下:

1 | 2 | 3
- - - - -
4 | 5 | 6
- - - - -
7 | 8 | 9
Run Code Online (Sandbox Code Playgroud)

或者在纯粹的哈克尔

[ [1,2,3], [4,5,6], [7,8,9] ]
Run Code Online (Sandbox Code Playgroud)

预期的输出diagonals [ [1,2,3], [4,5,6], [7,8,9] ]是

[ [1], [4, 2], [7, 5, 3], [8, 6], [9] ]
Run Code Online (Sandbox Code Playgroud)

写作allDiagonals(包括反对角线)是微不足道的:

allDiagonals :: [[a]] -> [[a]]
allDiagonals xss = (diagonals xss) ++ (diagonals (rotate90 xss))
Run Code Online (Sandbox Code Playgroud)

我对这个问题的研究

类似的问题在StackOverflow

  • Python这个问题是关于Python中的同样问题,但Python和Haskell是非常不同的,所以这个问题的答案与我无关.

  • 只有一个这个问题和答案都在Haskell中,但只是关于中心对角线.

Hoogle

搜索给[[a]] -> …

haskell matrix

12
推荐指数
3
解决办法
3120
查看次数

哈斯克尔的"尾巴"函数有什么时间复杂性?

当我想到自己时,我正在阅读关于Haskell的教程; Haskell的tail功能具有多大的时间复杂性(以及为什么)?(我在任何文档中都找不到答案)

我猜想对于大小为n的列表,tail函数将是O(n),即只是将尾部复制到新列表并返回该列表.但话说回来,我不太了解Haskell的底层架构(我是语言的新手).

当然,我可以计时.但我还不知道如何在Haskell中计算时间,我也想了解Haskell如何处理问题,证明为什么它是O(n)/ O(1)或其他什么.

提前致谢 :)

haskell

3
推荐指数
2
解决办法
682
查看次数

标签 统计

haskell ×2

matrix ×1