我是Haskell的新手,并请我的一位教授做一些练习来帮助我学习。他给了我关于图像处理的东西。 我在Haskell中使用字符串创建了几个图像,例如
pic :: Int -> Pic
pic 1 = [" #### ",
" ## ## ",
" #### "]
我想获取图像尺寸,例如宽度9高度3英寸(9,3)格式。 将其定义为
sizePic :: Pic -> (Int, Int)
高度只是使用长度功能。 高度:: Pic - >诠释 高度=长度
宽度我遇到了一些麻烦。 宽度:: Pic - >诠释 宽度=
我只想显示头部的长度(所有字符串长度相等)
任何想法。
答案 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)