问题是:
“<em>列表的行程编码。利用问题P09的结果来实现所谓的游程编码数据压缩方法。元素的连续重复被编码为列表 (NE),其中 N 是元素 E 的重复数。”</p>
预期结果是:
λ> encode "aaaabccaadeeee"
[(4,'a'),(1,'b'),(2,'c'),(2,'a'),(1,'d'),(4,'e')]
我创建了这段代码:
encode [] = []
encode (x:xs) = (counting xs,x) : encode (dropWhile (==x) xs )
where counting (y:ys)
| y == head ys = 1 + counting ys
| otherwise = 0
repl 说:
`<interactive>:(1,1)-(5,22): Non-exhaustive patterns in function encode`
我不知道我的递归错误在哪里。