【问题标题】:Removing every instance of the empty list from a list of list从列表列表中删除空列表的每个实例
【发布时间】:2012-05-02 13:34:11
【问题描述】:

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

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

将导致此输出...

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

提前谢谢:)

【问题讨论】:

    标签: list haskell list-comprehension


    【解决方案1】:

    Filter 是你的朋友。

    filter (not . null) ...
    

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

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

    【讨论】:

      【解决方案2】:

      Filter 可能会对您有所帮助。

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

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

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

      【讨论】:

        猜你喜欢
        • 2014-01-06
        • 1970-01-01
        • 2017-11-02
        • 2022-11-01
        • 2016-02-17
        • 2021-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多