2016-02-26 2 views
1

Допустим, что я объявляю переменную в GHCIУдалить пустые записи в списке

let a = ["hello","goodbye","","sup","bye","hi","cat","dog"] 

И я хочу пойти об удалении, что противный «» из списка. Из моего понимания, я должен быть в состоянии использовать dropWhile сделать так, как этот

dropWhile null a 

Но это не снимает надоедливых «». Почему это? Как я могу исправить эту проблему?

А теперь я понимаю. Я совершенно неправильно понял, как DropWhile работает. Итак, чтобы этот вопрос немного изменился - как удалить пустые записи в списке?

ответ

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"] 
Смежные вопросы