列表列表在haskell转90度

jQw*_*rdy 2 haskell

假设我有一个类型的列表列表:我可以旋转它(在某种意义上),以便:

[[a,b],    [[b,d],
 [c,d]] =>  [a,c]]
Run Code Online (Sandbox Code Playgroud)

对于任何尺寸列表?或者如果不可能为任意大小的列表只为6x6的大小列表

Mik*_*kov 9

以下应该为您提供所需的输出:

import Data.List (transpose)

rotate :: [[a]] -> [[a]]
rotate = reverse . transpose
Run Code Online (Sandbox Code Playgroud)

测试:

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