首页 > Erlang并发教程 > 4.13 Erlang并发编程-filter
2013
11-06

4.13 Erlang并发编程-filter

filter
函数filter(Pred, List)对列表List中的元素进行过滤,仅保留令Pred的值为true的元素。这里的Pred是一个返回true或false的函数。

filter(Pred, [H|T]) ->
    case apply(Pred,[H]) of
        true ->
        [H|filter(Pred, T)];
    false ->
        filter(Pred, T)
    end;
filter(Pred, []) ->
    [].

假设函数math:even/1在参数为偶数时返回true,否则返回fale,则:

> lists:filter({math,even}, [1,2,3,4,5,6,7,8,9,10]).
[2,4,6,8,10]

留下一个回复

你的email不会被公开。