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

lists:flatten/2

将多层嵌套列表转为单层列表

用法:

flatten(DeepList, Tail) -> List

内部实现:

 -spec flatten(DeepList, Tail) -> List when
      DeepList :: [term() | DeepList],
      Tail :: [term()],
      List :: [term()].

flatten(List, Tail) when is_list(List), is_list(Tail) ->
    do_flatten(List, Tail).

do_flatten([H|T], Tail) when is_list(H) ->
    do_flatten(H, do_flatten(T, Tail));
do_flatten([H|T], Tail) ->
    [H|do_flatten(T, Tail)];
do_flatten([], Tail) ->
    Tail.

lists:flatten/1 一样,都是把多层嵌套列表转为单层列表,只是多了一个在后面加上的尾列表 Tail

Tail = [9, 10],
lists:flatten([[1], [2], 3, [4, [5, 6, [7, 8]]]], Tail).
阿里云 - 最高1000元通用代金券立即可用
沪ICP备13037221号-9