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