title: Arrays implementation in erlang
body: <p>My question is, how are arrays implemented in Erlang, as opposed to lists.</p>
  
  <p>With immutable types doing things like, </p>
  
  <pre><code>move ([X | Xs], Ys) -&gt;
      [X | Ys].
  
  Ls = move([1,2,3], [2,3,4])
  </code></pre>
  
  <p>would take up constant mem in the heap, since this is all reference work.</p>
  
  <p>But for the same stuff in arrays</p>
  
  <pre><code>move (A1, A2) -&gt;
      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).
  </code></pre>
  
  <p>Will <code>move</code> here use size proportional to A2 or will it be able to do this in constant space like with the arrays?</p>