At the moment I'm doing something like this:

def some_method(array1)
 ...
  array2 = array1.clone
 ...
  array2.delete_at(i)
 ...
  return array2
 ...
end


I would like array1 to remain unchanged. It seems a little inefficient
to clone array1 every time some_method is called.  Is there a more
elegant solution?