如何使用Prelude从haskell中的列表中删除每个值的出现?

Pet*_*ter 3 haskell list

我想从列表中删除某个值的每个出现.我写了一个函数来做到这一点:

removeall val [] = []
removeall val list = if (head list) == val
                     then removeall val (tail list)
                     else (head list):(removeall val (tail list))
Run Code Online (Sandbox Code Playgroud)

但是如果可能的话,我想使用Prelude,原因是优雅和可读性.

via*_*tic 19

removeall val list = filter (/= val) list
Run Code Online (Sandbox Code Playgroud)

  • 或者:removeall val = filter(/ = val) (8认同)