R=[{},{},{},{}],
T = lists:foldl(fun(L2, A2) ->
FS=L2,
% do my logic on each item in the list here,
% the line below appends the result of all the
% work we do here to the accumulator A2.
lists:append([A2,[FS]])
end, [], R),
A chave para o acima é o acumulador ‘A2’ que armazena o resultado de cada loop em uma lista.
Isso é útil quando você precisa trabalhar em uma lista para criar uma nova lista. Especialmente ao trabalhar com bibliotecas como mochiweb, webmachine, onde a saída pode estar em json.
Você poderia usar a estrutura acima para gerar uma lista amigável mochijson2 a partir de uma lista erlang regular.
[listas: página do manual do foldl / 3] [ http://www.erlang.org/doc/man/lists.html#foldl-3 ]