a = [0, 1, 2, 3, 4, 5] # example 1 def reverse(array) array.each_with_index do |val, index| break if index >= array.count / 2 temp = array[index] array[index], array[-index-1] = array[-index-1], temp end return array end reverse(a) # example 2 def reverse(array) array.reduce([]) do |memo, item| memo.unshift(item) end end reverse(a)