#!/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