我的问题是,数组是如何在 Erlang 中实现的,而不是列表。
使用不可变类型做类似的事情,
move ([X | Xs], Ys) ->
[X | Ys].
Ls = move([1,2,3], [2,3,4])
将占用堆中的常量内存,因为这都是参考工作。
但是对于数组中的相同内容
move (A1, A2) ->
array:set(0, array:get(0,A1),A2).
A1 = array:from_list([1,2,3]).
A2 = array:from_list([0,2,3,4]).
A3 = move(A1,A2).
这里会move
使用与 A2 成比例的大小,还是能够像数组一样在恒定空间中执行此操作?