W0028 - Unnecessary Flattening To Find Flat Length
Error
main(NestedList) ->
length(lists:flatten(NestedList)).
%% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 💡 warning: Unnecessary intermediate flat-list allocated.
Explanation
The warning message indicates that a list is being unnecessarily flattened.
Whilst this will correctly find the length of the flattened list, it is unnecessary to actually construct the flattened list to find that length.
To fix the issue, use the function lists:flatlength/1
to compute the
flatlength without constructing an intermediate, flattened list:
main(NestedList) ->
lists:flatlength(NestedList).