删除列表中的空白条目

Dak*_*ter 1 haskell

假设我在GHCI中声明了一个变量

let a = ["hello","goodbye","","sup","bye","hi","cat","dog"]
Run Code Online (Sandbox Code Playgroud)

我想从列表中删除那个讨厌的"".根据我的理解,我应该能够使用dropWhile这样做

dropWhile null a
Run Code Online (Sandbox Code Playgroud)

但这并没有消除讨厌的"".为什么是这样?我该如何解决这个问题?

啊,现在我明白了.我完全误解了dropWhile是如何工作的.那么为了使这个问题有所不同 - 如何删除列表中的空白条目?

awe*_*oon 9

dropWhile给定谓词时丢弃元素True.null "hello"是的False,它应该放弃任何东西.

您可能正在寻找filter:

Prelude> filter (not . null) ["hello","goodbye","","sup","bye","hi","cat","dog"]
["hello","goodbye","sup","bye","hi","cat","dog"]
Run Code Online (Sandbox Code Playgroud)