Such a great site. The page on flattening arrays blows me away at how different and beautiful some languages can be (especially Ruby and Erlang's take).
module Enumerable
def custom_flatten
inject([]) do |result, element|
if element.respond_to?(:custom_flatten)
result.concat(element.custom_flatten)
else
result.push(element)
end
end
end
end
Works on all Enumerables (Array, Hash, Set, etc)