Erlang: ¿Se puede hacer esto sin listas: reversa?

Soy un principiante aprendiendo Erlang. Después de leer sobre las comprensiones de listas y la recursividad en Erlang, quería intentar implementar mi propiamapunción @, que resultó así:

% 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]).

Mi pregunta es: se siente mal crear una lista a través de la función recursiva y luego invertirla al final. ¿Hay alguna forma de construir la lista en el orden correcto, por lo que no necesitamos lo contrario?

Respuestas a la pregunta(2)

Su respuesta a la pregunta