@flatten(t:tab)
@flatten(t:tab, n:numeric)
flatten(t) returns a new tab where where the nesting structure of
t has been flattened. For example, 
       @flatten([[1, 2], [3], [[], [4, 5]]]) ->  [1, 2, 3, 4, 5]
flatten(t, n) returns a new tab where the first n levels of nesting
have been flattened. If n == 0, the function is the identity. If n
is strictly negative, it is equivalent to without the level argument.
       @flatten([1, [2, [3, 3], 2], [[[4, 4, 4]]]], 0)  -> [1, [2, [3, 3], 2], [[[4, 4, 4]]]]
       @flatten([1, [2, [3, 3], 2], [[[4, 4, 4]]]], 1)  -> [1, 2, [3, 3], 2, [[4, 4, 4]]]
       @flatten([1, [2, [3, 3], 2], [[[4, 4, 4]]]], 2)  -> [1, 2, 3, 3, 2, [4, 4, 4]]
       @flatten([1, [2, [3, 3], 2], [[[4, 4, 4]]]], 3)  -> [1, 2, 3, 3, 2, 4, 4, 4]
       @flatten([1, [2, [3, 3], 2], [[[4, 4, 4]]]], 4)  -> [1, 2, 3, 3, 2, 4, 4, 4]
       @flatten([1, [2, [3, 3], 2], [[[4, 4, 4]]]], -1) -> [1, 2, 3, 3, 2, 4, 4, 4]
See also some other lisp like functions: @car, @cdr, @concat, @cons, @empty, @drop, @take.
See also Tab Manipulations @car @cdr @clear @concat @cons @copy @count @dim @domain @drop @empty @find @flatten @gnuplot @insert @iota @is_list @is_prefix @is_subsequence @is_suffix @lace @last @listify @map @max_val @median @member @normalize @occurs @parse @permute @push_back @push_front @range @reduce @remove @remove_duplicate @replace @reshape @resize @reverse @rotate @scan @scramble @size @slice @sort @sputter @stutter @succession @tab_history @tab_history_date @tab_history_rdate @take @to_num