È arrivato un carico di provviste di emergenza, ma c'è un problema. Per proteggerle dai danni, gli oggetti (torce, kit di primo soccorso, coperte) sono imballati dentro delle scatole, e alcune di queste scatole sono a loro volta dentro altre scatole, annidate su più livelli!
Per essere preparati a un'emergenza, tutto deve essere facilmente accessibile in una sola scatola. Riesci a disimballare tutte le provviste e a sistemarle in un'unica scatola, così sono pronte quando servono di più?
Prendi un array annidato di qualsiasi profondità e restituisci un array completamente appiattito.
Tieni presente che alcune tracce potrebbero includere valori simili a null nell'array di input, e il modo in cui questi valori sono rappresentati varia da traccia a traccia. Questi valori vanno esclusi dall'array appiattito.
Inoltre, l'input può essere di un tipo di dato diverso e contenere tipi diversi, a seconda della traccia.
Controlla la suite di test per i dettagli.
input: [1, [2, 6, null], [[null, [4]], 5]]
output: [1, 2, 6, 4, 5]
Le istruzioni qui sopra sono sincronizzate con un repository condiviso, per garantire coerenza tra tutte le tracce linguistiche. Questa appendice fornisce chiarimenti aggiuntivi o modifica le istruzioni secondo necessità, per allinearsi meglio agli obiettivi della traccia Clojure.
Per questo esercizio nella traccia Clojure, puoi dare per scontato che l'input sia una qualsiasi combinazione annidata di vettori e che l'output sia un vettore, come indicato dai test. Tuttavia, questo non è un requisito rigoroso: sei libero di dare per scontato che l'input sia una qualsiasi combinazione annidata di cose sequenziali (liste, vettori, ecc.) e che l'output sia una sequenza.
Iscriviti a Exercism per imparare e padroneggiare Clojure con 12 concetti105 esercizi e il mentoring di persone reali, tutto gratis.