当前位置:  开发笔记 > 编程语言 > 正文

在Haskell中旋转矩阵

如何解决《在Haskell中旋转矩阵》经验,为你挑选了1个好方法。

我有这种类型Mat a = [[a]]来表示haskell中的矩阵.我必须编写一个旋转矩阵的函数,例如[[1,2,3],[0,4,5],我[0,0,6]][[3,5,6],[2,4,0],[1,0,0]]这样做:

rotateLeft :: Mat a->Mat a
rotateLeft [[]] = []
rotateLeft (h:t) = (map last (h:t)):(rotateLeft (map init (h:t)))

但输出是

[[3,5,6],[2,4,0],[1,0,0],[*** Exception: Prelude.last: empty list

我不知道在基本情况下放什么来避免这种异常.Apreciate任何帮助.



1> pigworker..:

我赶时间老了.我这样做(导入Data.List)

rotl :: [[x]] -> [[x]]
rotl = transpose . map reverse

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有