Erlang: Isso pode ser feito sem listas: reverso?

Sou iniciante aprendendo Erlang. Depois de ler sobre compreensão de lista e recursão em Erlang, eu queria tentar implementar meu própriomap, que acabou assim:

% Map: Map all elements in a list by a function
map(List,Fun) -> map(List,Fun,[]).
map([],_,Acc) -> lists:reverse(Acc);
map([H|T],Fun,Acc) -> map(T,Fun,[Fun(H)|Acc]).

Minha pergunta é: parece errado criar uma lista através da função recursiva e depois revertê-la no final. Existe alguma maneira de criar a lista na ordem certa, para que não seja necessário o contrário?

questionAnswers(2)

yourAnswerToTheQuestion