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

lists:takewhile/2

基于一个断言提取一个列表

用法:

takewhile(Pred, List1) -> List2

内部实现:

-spec takewhile(Pred, List1) -> List2 when
      Pred :: fun((Elem :: T) -> boolean()),
      List1 :: [T],
      List2 :: [T],
      T :: term().

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

把列表 List1 里的每个元素依次被断言函数 Pred 调用执行,并返回一个列表 List2。如果元素在 Pred 函数中返回的结果为 true,则把该元素加入到返回列表,直到遇到返回值是 false,则结束断言 Pred 调用

lists:takewhile(fun(E) -> E < 3 end, [1, 2, 3, 4, 5]).
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9