不附加到列表头部在erlang中创建新列表?

时间:2016-07-19 19:40:28

标签: erlang

在erlang中,一切都是不变的吗?那么如何将一个元素附加到列表头部不会创建列表的新副本,因为使用append每次都会创建一个新副本?

来自erlang.org的引用:
在递归和构建列表时,务必确保将新元素附加到列表的开头。通过这种方式,您将构建一个列表,而不是数百或数千个增长结果列表的副本。

每次没有追加到底的原因是不是遍历链表?

1 个答案:

答案 0 :(得分:5)

Erlang对列表使用单个链表。添加头部不会修改尾部。想象一下,你有列表T = [10, 50, 40]。添加头部为[20 | T],结果如图所示。您可以看到[10, 50, 40]部分未被更改。

enter image description here