相关疑难解决方法(0)

erlang中的数组实现

我的问题是,如何在Erlang中实现数组,而不是列表.

使用不可变类型执行的操作,

move ([X | Xs], Ys) ->
    [X | Ys].

Ls = move([1,2,3], [2,3,4])
Run Code Online (Sandbox Code Playgroud)

将占用堆中的常量mem,因为这是所有参考工作.

但对于数组中的相同内容

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).
Run Code Online (Sandbox Code Playgroud)

move在这里使用的大小成正比,A2还是会能够做到这一点不变的空间像阵列?

memory erlang immutability

4
推荐指数
1
解决办法
1886
查看次数

标签 统计

erlang ×1

immutability ×1

memory ×1