Nesse desafio, sua tarefa é criar um programa que utilize uma matriz aninhada e retorne uma matriz achatada unidimensional. Por exemplo [10,20,[30,[40]],50]deve saída [10,20,30,40,50].
Entrada
A entrada será uma matriz aninhada (por exemplo [10,20,[[[10]]]]). Ele conterá apenas números inteiros (negativos e positivos), seqüências de caracteres e matrizes. Você pode usar a entrada como argumento de função, STDIN ou o que for mais adequado ao seu idioma. Você pode assumir que a matriz de entrada não terá uma matriz vazia.
Saída
A saída será uma matriz unidimensional plana com os mesmos elementos do mesmo tipo que na matriz aninhada e na mesma ordem.
Casos de teste
[10,20,30] -> [10,20,30]
[[10]] -> [10]
[["Hi"],[[10]]] -> ["Hi",10]
[[[20],["Hi"],"Hi",20]] -> [20,"Hi","Hi",20]
[[["[]"],"[]"]] -> ["[]","[]"]
Sinta-se à vontade para solicitar esclarecimentos usando comentários. Isso é código-golfe , então o código mais curto em bytes vence!
Nota: Se o seu idioma contiver um built-in para isso, você NÃO deve usá-lo.
Editar
Inclua também um link para um site em que seu código possa ser executado.
unflattenpergunta, mas nenhuma flattenpergunta sobre o PPCG.
["[",[["[",],'[',"['['"]]como um caso de teste.
'e "como delimitadores. (Mas eu concordo que um caso de teste envolvendo [, ], "e \dentro de uma string seria útil.)