void local fn FlattenAList CFStringRef listStr = @"[[1], 2, [[3, 4], 5], [[[]]], [[[6]]], 7, 8, []]" CFArrayRef listArr = fn StringComponentsSeparatedByCharactersInSet( listStr, fn CharacterSetWithCharactersInString( @"\"[ ]," ) ) CFMutableArrayRef mutArr = fn MutableArrayWithArray( listArr ) MutableArrayRemoveObject( mutArr, @"" ) CFStringRef flatStr = fn ArrayComponentsJoinedByString( mutArr, @", " ) printf @"[%@]", flatStr end fn fn FlattenAList HandleEvents