首页 > 解决方案 > Haskell函数递归删除列表中给定值的所有出现

问题描述

例如,myRemove 2 [2,1,2,3,2,1,2,3,4] = [1,3,1,3,4]

这是我到目前为止所做的

myRemove :: a -> [b] ->[b]
myRemove a [] = []
myRemove (x:xs) =
    | a = x = myRemove - x
    | otherwise myRemove a xs

标签: haskellrecursion

解决方案


如此多的错误和错别字,可能阅读更多关于语言的内容!

我想这就是你想要做的

myRemove :: Eq a => a -> [a] -> [a]
myRemove a [] = []
myRemove a (x:xs) | a==x      = myRemove a xs
                  | otherwise = x:(myRemove a xs)

使用输入运行时

> myRemove 2 [2,1,2,3,2,1,2,3,4]
[1,3,1,3,4]

推荐阅读