aqui está como eu faço um loop foreach em erlang

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 ]