我已经编写了代码,但是当我尝试编译时出现此错误:在输入“ ord”上解析错误
我仍在学习Haskell,并且开始对它有所适应。我一直在网上寻找答案,但是找不到任何可以帮助我解决问题的方法。
ord :: String -> [String]
ord [] = []
ord x:xs = if x == " " then x:(ord s) else
if x /= " " then x ++ (ord s)
我很困,无法弄清楚为什么会出现此错误。有人可以帮忙吗?
编辑:
谢谢大家的帮助!我已经更改了代码,但仍然收到相同的错误...
ord :: String -> [String]
ord [] = []
ord (x:xs) = if x == " " then x:(ord xs)
else if x /= " " then x ++ (ord xs)
else []
btw:该函数应该接受一个字符串,并将单词按空格分开,然后将它们放入表中。 F.ex:
ord“嗨,我叫安纳克” 应该给出:[“ hi”,“ my”,“ name”,“ is”,“ annack”]
答案 0 :(得分:5)
您需要在与非空列表匹配的模式周围加上括号:
ord (x:xs) = ...
解决此问题后,还需要解决许多其他问题。