5

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

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

将导致此输出...

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

提前致谢 :)

4

2 回答 2

20

过滤器是你的朋友。

filter (not . null) ...

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

[ x | x <- xs , not (null x) ]
于 2012-05-02T13:36:34.983 回答
12

Filter可能会帮助你。

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

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

关于过滤器是什么以及它们如何工作有一个很好的解释

于 2012-05-02T13:36:26.470 回答