Task

Write a function to flatten the nesting in an arbitrary list of values.

Your program should work on the equivalent of this list:

  [[1], 2, [[3, 4], 5], [[[]]], [[[6]]], 7, 8, []]

Where the correct result would be the list:

   [1, 2, 3, 4, 5, 6, 7, 8]

Related task

   Tree traversal


my_flatten({{1}, 2, {{3, 4}, 5}, {{{}}}, {{{6}}}, 7, 8, {}})
 
on my_flatten(aList)
    if class of aList is not list then
        return {aList}
    else if length of aList is 0 then
        return aList
    else
        return my_flatten(first item of aList) & (my_flatten(rest of aList))
    end if
end my_flatten
 