> Erlang中文手册 > dropwhile/2 当断言为真则从列表里丢弃该元素

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 =