Реализация массивов в эрланге
У меня вопрос, как в 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, или он сможет делать это в постоянном пространстве, как с массивами?