为什么我的函数名出现解析错误?

时间:2019-09-10 19:21:02

标签: haskell

我已经编写了代码,但是当我尝试编译时出现此错误:在输入“ 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”]

1 个答案:

答案 0 :(得分:5)

您需要在与非空列表匹配的模式周围加上括号:

ord (x:xs) = ...

解决此问题后,还需要解决许多其他问题。