【问题标题】:return the rest of a list in Haskell recursion在 Haskell 递归中返回列表的其余部分
【发布时间】:2013-02-06 16:06:32
【问题描述】:

大家好,我正在尝试创建一个简单的程序来删除第一次出现的元素,然后返回列表的其余部分。 已经有一段时间了,我想知道为什么我在第 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)

任何输入?谢谢大佬

【问题讨论】:

  • 下次请照原样复制并粘贴错误消息。 :)

标签: haskell recursion


【解决方案1】:

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

【讨论】:

  • 这么简单的解决方案我就知道了。非常感谢
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2020-01-22
    • 2012-03-09
    • 2020-11-12
    • 2019-03-19
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 2019-07-21
    相关资源
    最近更新 更多