在Haskell中按长度过滤列表项

时间:2014-01-28 15:47:58

标签: haskell

我有一个像["a","ab","abc", "abcd"]

这样的列表

如何获取仅包含长度为>的项目的列表2.

表示结果为["abc","abcd"].

2 个答案:

答案 0 :(得分:12)

娜塔莉的回答是完全正确的,但作为替代形式,你也可以把它写成

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

或者将列表理解为

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

这三个都是等价的

答案 1 :(得分:11)

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