在Haskell中按长度过滤列表项

Xie*_*Xie 3 haskell

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

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

意味着结果是 ["abc","abcd"].

bhe*_*ilr 12

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

filter ((> 2) . length) ["a", "ab", "abc", "abcd"]
Run Code Online (Sandbox Code Playgroud)

或者列表理解为

[str | str <- ["a", "ab", "abc", "abcd"], length str > 2]
Run Code Online (Sandbox Code Playgroud)

这三个都是等价的


Nat*_*ard 11

filter (\x -> length x > 2) ["a","ab","abc", "abcd"]
Run Code Online (Sandbox Code Playgroud)

  • 我个人认为bheklilr的答案更清洁.也不肮脏.只是不同. (6认同)
  • 使用 bheklilr 的更简洁的答案。 (2认同)