haskell从列表列表中删除所有出现的给定值

ErH*_*unt 6 haskell

我想从列表列表中删除所有出现的给定值.例如,输入:

'a' ["abc", "bc", "aa"] 
Run Code Online (Sandbox Code Playgroud)

输出:

 ["bc", "bc", ""]
Run Code Online (Sandbox Code Playgroud)

至今:

remove :: Eq a => a -> [[a ]] -> [[a ]]
remove y xs = filter(\x -> x/= y) xs
Run Code Online (Sandbox Code Playgroud)

我收到了错误,请提前谢谢.

lef*_*out 10

您需要映射外部列表.

remove y xs = map (filter(\x -> x/= y)) xs
Run Code Online (Sandbox Code Playgroud)

你实际上不需要lambda,更好:

remove y xs = map (filter(/=y)) xs
Run Code Online (Sandbox Code Playgroud)

  • 你也可以在两边放下`xs` (3认同)
  • 甚至`地图.过滤器.(/ =)` (3认同)