gpt4 book ai didi

Erlang中的列表创建

转载 作者:行者123 更新时间:2023-12-04 17:28:10 35 4
gpt4 key购买 nike

来自 Cesarini 练习 3-2 的“Erlang Programming”

当我完成“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:创建(3)。
[3,2,1]

但 reverse_create 不会生成我期望的列表。

练习 3:reverse_create(3)。
[[[[]|1]|2]|3]

我需要更改什么才能使 reverse_create(3) 返回 [1,2,3]?谢谢解释。

最佳答案

reverse_create返回一个列表,您使用它作为头元素来创建导致嵌套列表的列表。试试这个解决方案:

reverse_create( 0 ) -> [];
reverse_create( N ) when N > 0 -> reverse_create( N-1 ) ++ [N].

编辑:一个更好的实现是:
reverse_create2(N) -> reverse_create_helper(N, []).

reverse_create_helper(0, Acc) ->
Acc;
reverse_create_helper(N, Acc) ->
reverse_create_helper(N-1, [N|Acc]).

关于Erlang中的列表创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4231760/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com