For loops in Erlang:
for(Max, Max, F) -gt; [F(Max)];
for(I, Max, F) -gt; [F(I)|for(I+1, Max, F)].
My I suggest instead either:
lists:each(lists:seq(Min, Max), F).
or:
for(I, Max, F) when I <= Max ->
for_impl(I, Max, F, []).
for_impl(Max, Max, F, Acc) ->
lists:reverse(Acc);
for_impl(I, Max, F, Acc) ->
for_impl(I+1, Max, F, [F(I)|Acc].
The original version of this code will blow out the stack with non-trivial length [...]
