lists:flatten/1
将多层嵌套列表转为单层列表
用法:
flatten(DeepList) -> List
内部实现:
%% flatten(List)
%% flatten(List, Tail)
%% Flatten a list, adding optional tail.
-spec flatten(DeepList) -> List when
DeepList :: [term() | DeepList],
List :: [term()].
flatten(List) when is_list(List) ->
do_flatten(List, []).
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], [2], 3, [4, [5, 6, [7, 8]]]]).
Term = {1, a, [2, 3]},
lists:flatten(io_lib:format("~p", [Term])).