在Haskell递归中返回列表的其余部分

在Haskell递归中返回列表的其余部分,haskell,recursion,Haskell,Recursion,嘿,伙计们,我正在尝试创建一个简单的程序来删除元素的第一次出现,然后返回列表的其余部分。 已经有一段时间了,我想知道为什么我在第8行出现了这个解析错误 module deleteFirst where deleteFirst :: (Eq a) => a ->[a] -> [a] deleteFirst toDelete [] = [] deleteFirst toDelete (a:as) = if(toDelete == a) then as else a

嘿,伙计们,我正在尝试创建一个简单的程序来删除元素的第一次出现,然后返回列表的其余部分。 已经有一段时间了,我想知道为什么我在第8行出现了这个解析错误

module deleteFirst where
deleteFirst :: (Eq a) => a ->[a] -> [a]

deleteFirst toDelete [] = []
deleteFirst toDelete (a:as) =
    if(toDelete == a) then as
    else a:(deleteFirst toDelete as)

有什么意见吗?谢谢guy,解析错误在第8列,而不是第8行,这是因为模块名称必须以大写字母开头。

您得到了答案,但我想指出另一个解决方案:

deleteFirst x xs = u ++ (drop 1 v) where (u,v) = break (==x) xs

这么简单的解决办法我就知道了。谢谢下次请复制并粘贴错误消息的全部内容。:)