2014-01-28 67 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