Haskell:获得图像的大小

时间:2016-04-04 15:38:04

标签: haskell

我是Haskell的新手,并请我的一位教授做一些练习来帮助我学习。他给了我关于图像处理的东西。 我在Haskell中使用字符串创建了几个图像,例如

pic :: Int -> Pic 
pic 1 = ["  ####   ",
         " ##  ##  ",
         "  ####   "]

我想获取图像尺寸,例如宽度9高度3英寸(9,3)格式。 将其定义为

sizePic :: Pic -> (Int, Int)

高度只是使用长度功能。 高度:: Pic - >诠释 高度=长度

宽度我遇到了一些麻烦。 宽度:: Pic - >诠释 宽度=

我只想显示头部的长度(所有字符串长度相等)

任何想法。

2 个答案:

答案 0 :(得分:1)

提示№1:Haskell中的字符串是Char的列表。也就是说,"图像"中的每一行是[Char]

提示№2:要获得宽度,您需要将length应用于第一行(或最后一行或任何其他行)。

答案 1 :(得分:1)

这不会帮助你作为初学者,而是要尝试可以做的事情

> import Control.Arrow
> (length &&& (length . head)) s
(3,9)

您可以将您的版本编写为

type Pic = [String]

sizePic :: Pic -> (Int, Int)
sizePic [] = (0,0)  
sizePic (x:xs) = (1+length xs, length x)