Erlang Thursday – lists:filter/2

今天的Erlang Thursday讲的是 lists:filter/2.

lists:filter/2有两个入参:一个断言函数和一个被遍历的列表。它的返回值是是一个列表,其元素是入参列表的元素应用于断言函数返回值是true的元素。

1
2
3
4
5
6
7
8
9
10
11
12
lists:filter(fun (X) -> X rem 2 =:= 1 end, [1, 2, 3, 4, 5]).
% [1,3,5]
lists:filter(fun erlang:is_atom/1, [1, a, 3, {a, b}, 'World', foo]).
% [a,'World',foo]
lists:filter(fun (X) -> X > 0 end, [1, 0, -3, foo, -13, 43]).
% [1,foo,43]
lists:filter(fun (X) -> X > 0 end, []).
% []
lists:filter(fun (X) -> false end, [1, 2, 3, 4, 5]).
% []
lists:filter(fun (X) -> true end, [1, 2, 3, 4, 5]).
% [1,2,3,4,5]

原文链接: https://www.proctor-it.com/erlang-thursday-lists-filter-2/