> Erlang中文手册 > all/2 如果列表里的所有元素都满足条件则返回 true

lists:all/2

如果列表里的所有元素都满足条件则返回 true

用法:

all(Predicate, List) -> bool()

内部实现:

-spec all(Pred, List) -> boolean() when
      Pred :: fun((Elem :: T) -> boolean()),
      List :: [T],
      T :: term().

all(Pred, [Hd|Tail]) ->
    case Pred(Hd) of
	true -> all(Pred, Tail);
	false -> false
    end;
all(Pred, []) when is_function(Pred, 1) -> true. 

列表里的每一个元素以参数的方式被断言函数 Predicate 调用,并返回一个布尔值 true 或 false,如果所有元素执行的结果都是 true,那么函数 lists:all/2 返回 true,否则返回 false。

例如下面的 Predicate 函数是判断参数 E 是不是一个偶数,如果列表里的每个元素都是偶数,那么 lists:all/2 函数返回 true,否则返回 false:

Predicate = fun(E) -> E rem 2 == 0 end, 
lists:all(Predicate, [2, 4, 6, 8]).