2014-01-28 2 views
1

У меня есть список, как ["a","ab","abc", "abcd"]список Фильтр элементов по длине в Haskell

Как получить список, который имеет только те элементы, которые имеют длину> 2.

Средства результат ["abc","abcd"].

+5

подсказка: 'filter'. – bheklilr

+0

Да, спасибо. Я понял. – Xie

+3

@NikitaVolkov Почему Се избавил его? Это допустимо, хотя и довольно просто. Другие могут столкнуться с этим вопросом и получить некоторое представление о том, как они начинают свои первые шаги в Haskell. – bheklilr

ответ

7

ответ Натали совершенно правильно, но в качестве альтернативной формы можно было бы написать как

filter ((> 2) . length) ["a", "ab", "abc", "abcd"] 

Или с список понимание, как

[str | str <- ["a", "ab", "abc", "abcd"], length str > 2] 

Все три эквивалентны

8
filter (\x -> length x > 2) ["a","ab","abc", "abcd"] 
+1

Пойдите с чистым ответом bheklilr. –

+4

Я лично не нахожу ответ читера bheklilr. Не грязнее. Просто другой. –

+0

@ DanielWagner Я думаю, что все три ответа примерно одинаково «чисты» и действительны. Я хотел бы не дать лучшего ответа, просто несколько способов сделать то же самое в Haskell. – bheklilr

Смежные вопросы