从列表中移除所有空列表的实例

6

我是Haskell的新手,只想写一个简单的列表推导式来从列表中删除所有空列表的实例,例如输入以下代码:

> remove ["abfwfw", "wfgwg", "", "dfw"] 

将这样的代码输入会产生以下输出...
> ["abfwfw", "wfgwg", "dfw"] 

thanks in advance :)

2个回答

22

Filter 是你的朋友。

filter (not . null) ...

或者,对于那些喜欢手动筛选的人,

[ x | x <- xs , not (null x) ]

13

Filter 可能会对你有帮助。

> filter (not . null) ["abfwfw", "wfgwg", "", "dfw"] 
["abfwfw","wfgwg","dfw"]

我们在这里做的是使用一个谓词函数(not . null) :: [a] -> Bool检查列表中每个元素的长度是否为null。

有一个很好的解释,介绍了过滤器是什么以及它们的工作原理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接