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

时间:2013-02-06 01:19:46

标签: 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:(deleteFirst toDelete as)

有什么输入?谢谢你

2 个答案:

答案 0 :(得分:7)

解析错误在第8列而不是第8行,这是因为模块名称必须以大写字母开头。

答案 1 :(得分:2)

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

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