lists:any/2
如果列表里的某一个元素满足条件则返回 true
用法:
any(Predicate, List) -> bool()
内部实现:
-spec any(Pred, List) -> boolean() when Pred :: fun((Elem :: T) -> boolean()), List :: [T], T :: term(). any(Pred, [Hd|Tail]) -> case Pred(Hd) of true -> true; false -> any(Pred, Tail) end; any(Pred, []) when is_function(Pred, 1) -> false.
跟 lists:all 一样,列表里的每个元素给 Predicate 断言函数调用,并返回一个布尔值 true 或 false,不同的是,如果调用返回的结果中至少有一个是 true,那么函数 lists:any/2 返回 true,否则返回 false
Predicate = fun(E) -> E rem 2 == 0 end, lists:any(Predicate, [3, 5, 6, 9]).