lists:dropwhile/2
当断言为真则从列表里丢弃该元素
用法:
dropwhile(Predicate, List1) -> List2
内部实现:
-spec dropwhile(Pred, List1) -> List2 when
Pred :: fun((Elem :: T) -> boolean()),
List1 :: [T],
List2 :: [T],
T :: term().
dropwhile(Pred, [Hd|Tail]=Rest) ->
case Pred(Hd) of
true -> dropwhile(Pred, Tail);
false -> Rest
end;
dropwhile(Pred, []) when is_function(Pred, 1) -> [].
列表 List1 里的每一个元素以参数的方式被函数 Predicate 调用,如果元素在函数 Predicate 中的执行结果是 true,则丢弃该元素,接着继续调用下一个元素;如果执行的结果是 false,则立刻结束,并返回一个由剩下的元素组成的列表。
lists:dropwhile(fun(E) -> E =