Chegou um carregamento de suprimentos de emergência, mas há um problema. Para protegê-los de danos, os itens (lanternas, kits de primeiros socorros, cobertores) estão embalados dentro de caixas, e algumas dessas caixas estão aninhadas várias camadas dentro de outras caixas!
Para que tudo esteja pronto numa emergência, cada item precisa estar facilmente acessível em uma única caixa. Você consegue desempacotar todos os suprimentos e colocá-los em uma única caixa, para que fiquem prontos quando forem mais necessários?
Pegue um array aninhado de qualquer profundidade e retorne um array completamente achatado.
Observe que algumas trilhas de linguagens podem incluir valores do tipo null no array de entrada, e a forma como esses valores são representados varia de trilha para trilha.
Esses valores devem ser excluídos do array achatado.
Além disso, a entrada pode ser de um tipo de dados diferente e conter tipos diferentes, dependendo da trilha.
Consulte a suíte de testes para mais detalhes.
entrada: [1, [2, 6, null], [[null, [4]], 5]]
saída: [1, 2, 6, 4, 5]
As instruções acima são sincronizadas com um repositório compartilhado para garantir consistência entre todos os tracks de linguagens. Este apêndice traz esclarecimentos adicionais ou modifica as instruções conforme necessário, para alinhar melhor com os objetivos do track de Clojure.
Neste exercício, no track de Clojure, você pode assumir que a entrada é qualquer combinação aninhada de vetores e que a saída é um vetor, como indicam os testes. No entanto, isso não é um requisito rígido; você tem liberdade para assumir que a entrada é qualquer combinação aninhada de coisas sequenciais (listas, vetores etc.) e que a saída é uma sequência.
Crie sua conta no Exercism para aprender e dominar Clojure com 12 conceitos105 exercícios e mentoria humana de verdade, tudo de graça.