Llegó un cargamento de suministros de emergencia, pero hay un problema. Para protegerlos de daños, los artículos (linternas, botiquines de primeros auxilios, mantas) están empacados dentro de cajas, ¡y algunas de esas cajas están anidadas varias capas dentro de otras cajas!
Para poder responder ante una emergencia, todo debe quedar fácilmente accesible en una sola caja. ¿Puedes desempacar todos los suministros y colocarlos en una sola caja, para que estén listos cuando más se necesiten?
Toma un array anidado de cualquier profundidad y devuelve un array completamente aplanado.
Ten en cuenta que algunos tracks de lenguaje pueden incluir valores similares a null en el array de entrada, y la forma en que se representan estos valores varía según el track. Esos valores deben excluirse del array aplanado.
Además, la entrada puede ser de un tipo de dato diferente y contener tipos distintos, según el track.
Revisa el conjunto de pruebas para más detalles.
entrada: [1, [2, 6, null], [[null, [4]], 5]]
salida: [1, 2, 6, 4, 5]
Las instrucciones de arriba están sincronizadas con un repositorio compartido para garantizar la consistencia entre todas las pistas de lenguajes. Este apéndice ofrece aclaraciones adicionales o modifica las instrucciones según sea necesario para alinearse mejor con los objetivos de la pista de Clojure.
Para este ejercicio en la pista de Clojure, puedes asumir que el argumento es cualquier combinación anidada de vectores y que la salida es un vector, como indican las pruebas. Sin embargo, esto no es un requisito estricto; eres libre de asumir que el argumento es cualquier combinación anidada de cosas secuenciales (listas, vectores, etc.) y que la salida es una secuencia.
Regístrate en Exercism para aprender y dominar Clojure con 12 conceptos105 ejercicios y mentoría humana real, todo gratis.