#!/usr/bin/ruby # ## http://rosettacode.org/wiki/Flatten_a_list # func flatten(a) { var flat = [] a.each { |item| flat << (item.kind_of(Array) ? __FUNC__(item)... : item) } return flat }  var arr = [[1], 2, [[3,4], 5], [[[]]], [[[6]]], 7, 8, []] say flatten(arr) # used-defined function say arr.flatten # built-in method for Array obj