La mia domanda è, come vengono implementati gli array in Erlang, anziché gli elenchi.Implementazione di array in erlang
Con tipi immutabili fare le cose come,
move ([X | Xs], Ys) ->
[X | Ys].
Ls = move([1,2,3], [2,3,4])
prenderebbe costante mem nel mucchio, poiché questo è tutto il lavoro di riferimento.
Ma per la stessa roba in array
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).
Will move
qui usano dimensioni proporzionali alla A2 o sarà in grado di farlo in uno spazio costante come con gli array?
Il modulo 'array' crea una struttura tupla annidata. È sia di dimensioni che di velocità efficiente. – rvirding
@rvirding, cosa intendi per struttura a tuple annidata? mi stai dicendo che le occhiate non sono O (1)? –