Erlang中文手册(Erldoc.com)  »  lists  »  dropwhile/2
Erlang并发编程 Erlang/OTP设计原理 Erlang/OTP[pdf] Mnesia用户手册[pdf] Erlang完整手册[en] 官网手册[en] 模块列表 方法列表 随机 Erlang中文社区(BBS) 美女图库

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 =< 0 end, [-3, -2, -1, 0, 1, -1, 2, 3]).
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9