我有这个编码功能:
class Encode a where
encode :: a -> [Bit]
我在编写一个将 a 类型列表编码为位列表的函数时遇到问题。我想对列表的元素进行递归编码。据我了解,您可以为此目的使用地图功能。问题是 encode 返回一个列表 [Bit],而 map 只需要 Bit。我该如何解决这个问题?这是程序的相关部分。
instance Encode a => Encode [a] where
encode [] = [I, O, O, I, O, I]
encode m = ([I, O, O] ++ (map encode m) ++ [I, O, I])