Haskell:无法将预期类型“[a0]”与实际类型“([char],[int])”匹配

Tit*_*ero 2 string haskell types function

我的错误消息如下: ' 无法将预期类型 '[a0]' 与实际类型 '([char], [Int])' 在 'zip' 的第一个参数中匹配

\n

我正在尝试进行行程编码,例如

\n

编码“aaaaabbbbcc”
\n[(\xe2\x80\x99a\xe2\x80\x99,5),(\xe2\x80\x99b\xe2\x80\x99,4),(\xe2\x80\x99c\xe2 \x80\x99,2)]

\n

我的代码是这样的:

\n
encode [] = []\nencode ls = zip((map head list), (map length list))\n where list = runs ls \n
Run Code Online (Sandbox Code Playgroud)\n

'runs' 函数返回 [String],例如
\nruns "aaaaabbbbcc"
\n["aaaaa","bbbb","cc"]

\n

我不知道如何解决它,任何帮助或解释将不胜感激!

\n

che*_*ner 5

您正在尝试使用 C 风格语法来 call zip,这被解释为zip获取单个元组作为其参数,而不是您想要的两个列表。

encode ls = zip (map head list) (map length list)
   where list = runs ls
Run Code Online (Sandbox Code Playgroud)