Erlang: Можно ли это сделать без списков: reverse?

Я начинаю изучать Erlang. Прочитав о понимании списков и рекурсии в Erlang, я хотел попробовать реализовать свою собственную функцию map , которая оказалась такой:

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

Мой вопрос: мне кажется неправильным создавать список с помощью рекурсивная функция, а затем отмените ее в конце. Есть ли способ составить список в правильном порядке, чтобы мы не не нужен ли обратный?

7
задан driis 30 May 2011 в 18:09
поделиться