I find it funny that the 31 lines of code in the example can be easily reduced to 8:
def merge(a, b)
c = []
c << (a[0] > b[0] ? b.shift : a.shift) until a.empty? || b.empty?
return c+a+b
end
def mergesort(a)
a.size <= 1 ? a : merge(mergesort(a.slice!(0,a.size/2)),mergesort(a))
end
Language Power > Language Speed