假设我在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是如何工作的.那么为了使这个问题有所不同 - 如何删除列表中的空白条目?
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)