从列表列表中删除空列表的每个实例

时间:2012-05-02 13:34:12

标签: list haskell list-comprehension

我是Haskell的新手,我只是想写一个简单的列表理解来从列表列表中删除空列表的每个实例,即输入这个..

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

将导致此输出...

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

提前感谢:)

2 个答案:

答案 0 :(得分:17)

Filter是你的朋友。

filter (not . null) ...

或者,对于那些喜欢手动过滤的人来说,

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

答案 1 :(得分:11)

Filter可能对您有所帮助。

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

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

有一个很好的explanation过滤器是什么以及它们如何工作。