Haskell 计算二进制表示的字符

Haskell 计算二进制表示的字符,haskell,Haskell,我有一个[[Int]],其值为[[0,1,1,0,0,0,0,0,0,0,1],[0,1,1,0,0,0,0,1,0]] 我需要将其转换为ascii表示形式,如“ab” 有谁能给我一些建议,告诉我在Haskell如何做这件事吗?你可以: 编写一个函数,将整数(二进制)列表转换为以10为基数的整数(Int) 使用模块Data.Char中的 使用map应用这些组合函数(将二进制转换为10进制,然后转换为字符)映射二进制代表列表,并将其转换为字符列表,即字符串 您可以对列表执行foldl来计算其整数值

我有一个
[[Int]]
,其值为
[[0,1,1,0,0,0,0,0,0,0,1],[0,1,1,0,0,0,0,1,0]]

我需要将其转换为ascii表示形式,如“ab”

有谁能给我一些建议,告诉我在Haskell如何做这件事吗?

你可以:

  • 编写一个函数,将整数(二进制)列表转换为以10为基数的整数(Int)
  • 使用模块
    Data.Char中的
  • 使用
    map
    应用这些组合函数(将二进制转换为10进制,然后转换为字符)映射二进制代表列表,并将其转换为字符列表,即字符串

  • 您可以对列表执行
    foldl
    来计算其整数值,然后使用
    chr
    将整数解释为unicode码点(其中ascii是一个子集)


    提示:如何将二进制列表转换为等效的数字?您对哪一部分有问题?到目前为止,你试过(或考虑过)什么?
    λ> import Data.Char (chr)
    λ> fmap (chr . foldl (\x y -> 2*x + y) 0) [[0,1,1,0,0,0,0,1],[0,1,1,0,0,0,1,0]]
    "ab"