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


 
list = translate (list, '  ', '[]' ); /*Produces "  1 , 2,   3,4 , 5 ,       ,    6   , 7, 8,     " */
list = Replace(list,'',' ');          /*Converts spaces to nothing. Same parameter order as Translate.*/
do while index(list,',,') > 0;        /*Is there a double comma anywhere?
  list = Replace(list,',',',,');      /*Yes. Convert double commas to single, nullifying empty lists*/
end;                                  /*And search afresh, in case of multiple commas in a row.*/
list = '[' || list || ']';            /*Repackage the list.*/
 