我正在阅读Cesarini的《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]呢?谢谢您的解释。