2

我是 Haskell 的新手。在下面的示例中,该函数从列表中删除所有出现的特定元素并返回一个新列表。此外,我正在尝试使用辅助函数来获取返回的列表并输出它的长度。

我遇到的问题是编译时出现解析错误,指向包含delete _ [] = [].

感谢您在找出错误原因方面的任何帮助。

countDelete y (x:xs) = length outputList
    where outputList = delete y (x:xs)

    delete _ [] = []
    delete y (x:xs)  |  x==y = delete y xs
                     |  otherwise = x:delete y xs
4

1 回答 1

4

子句中的所有绑定where必须从同一列开始,

countDelete y (x:xs) = length outputList
  where
    outputList = delete y (x:xs)

    delete _ [] = []
    delete y (x:xs)
        |  x==y      = delete y xs
        |  otherwise = x:delete y xs

作品。

于 2013-02-24T01:09:41.700 回答