首页 文章

Haskell:获得图像的大小

提问于
浏览
-1

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

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

我想获得图像大小,例如宽度9高度3英寸(9,3)格式 . 将其定义为

sizePic :: Pic -> (Int, Int)

高度只是使用长度功能 . 高度:: Pic - > Int Height =长度

宽度我遇到了一些麻烦 . 宽度:: Pic - > Int Width =

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

有任何想法吗 .

2 回答

  • 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)
    
  • 1

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

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

相关问题