我正在Haskell中编写一个程序,将markdown转换为HTML,现在我正在尝试编写基本函数来转换主符号,似乎遇到了我的函数问题,错误代码模糊地说“测试”。 hs:15:28:输入'&'解析错误“以下是我的内容:
symbol x " " = ""
symbol x (y:ys)
| x == '&' = '&' : (symbol ys)
| x == '<' = '<' : (symbol ys)
| x == '>' = '&rt;' : (symbol ys)
| otherwise = y : (symbol ys)
任何帮助解释我做错了什么都会非常感激 感谢名单
答案 0 :(得分:2)
双引号用于字符串,例如“abcd”
单引号用于字符,例如'a'
这在Haskell-'abcd'中绝对没有任何意义,编译器会抱怨。
此外,一旦你解决了这个问题,我想指出这个
"<" : (symbol ys)
将创建字符串列表,您可能不应该这样做....(++)将字符串合并为字符串。
答案 1 :(得分:2)
您应该纠正的一些事项:使用String
代替Char
代表&
。您对symbol
的递归调用尚未完成。你错过了一些论点。
symbol :: [Char] -> [Char] -> [Char]
symbol x " " = ""
symbol x (y:ys)
| x == "&" = "&" ++ (symbol x ys)
| x == "<" = "<" ++ (symbol x ys)
| x == ">" = "&rt;" ++ (symbol x ys)
| otherwise = y : (symbol x ys)