Из «Программирования на Erlang» Чезарини, упражнение 3-2
Проходя через «Программирование на Erlang», я получаю странные проблемы с созданием списков. Из упражнения 3-2 я написал две похожие функции.
create( 0 ) -> [];
create( N ) when N > 0 -> [ N | create( N-1 ) ].
reverse_create( 0 ) -> [];
reverse_create( N ) when N > 0 -> [ reverse_create( N-1 ) | N ].
поэтому create (3) генерирует, как я ожидал.
упражнение3: create (3).
[3,2,1]
но reverse_create не создает список, который я ожидал.
упражнение3: reverse_create (3).
[[[[] | 1] | 2] | 3]
Что мне нужно изменить, чтобы reverse_create (3) возвращал [1,2,3]? Спасибо за объяснение.