lists:flatlength/1
获取一个多层嵌套列表的长度
用法:
flatlength(DeepList) -> int()
内部实现:
%% flatlength(List)
%% Calculate the length of a list of lists.
-spec flatlength(DeepList) -> non_neg_integer() when
DeepList :: [term() | DeepList].
flatlength(List) ->
flatlength(List, 0).
flatlength([H|T], L) when is_list(H) ->
flatlength(H, flatlength(T, L));
flatlength([_|T], L) ->
flatlength(T, L + 1);
flatlength([], L) -> L.
获取一个多层嵌套列表的长度,即该嵌套列表里的非列表元素的个数,等同于调用 length(flatten(DeepList))
lists:flatlength([[1], [2], 3, [4, [5, 6, [7, 8]]]]).