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 に答える