Haskell:旋转图像90

时间:2016-04-06 13:37:57

标签: haskell

我使用string类型列表创建了一个图像。所以他们看起来像这样

pic 1 =  
["xxxx",   
 "x   ",   
 "xxx ",  
 "x   ",  
 "xxxx"]

所以我试图创造一个90度旋转(顺时针)。这是我到目前为止的代码,它似乎工作太高,但不适合所有图像。

rotateLine90 :: Pic -> Int -> [Char]     
rotateLine90 pic n = reverse [line!!n | line<-pic]

rotate90 :: Pic -> Pic  
rotate90 pic = [rotateLine90 pic i | i<-[0 .. (length pic) - 1]]

有关如何改进代码的任何想法。

1 个答案:

答案 0 :(得分:2)

这有效

> rotate90 ["XXXX", "X   ", "XXX ", "X   ", "XXXX"]
["XXXXX","X X X","X X X","X   X"]

用法:

{{1}}