Eine Lieferung Notfallvorräte ist angekommen, aber es gibt ein Problem. Um Schäden zu vermeiden, sind die Gegenstände (Taschenlampen, Erste-Hilfe-Kästen, Decken) in Kisten verpackt, und einige dieser Kisten stecken mehrere Schichten tief in anderen Kisten!
Um für einen Notfall gerüstet zu sein, muss alles leicht erreichbar in einer einzigen Kiste sein. Kannst du alle Vorräte auspacken und in eine einzige Kiste legen, damit sie bereitstehen, wenn sie am dringendsten gebraucht werden?
Nimm ein verschachteltes Array beliebiger Tiefe und gib ein vollständig abgeflachtes Array zurück.
Beachte, dass manche Sprach-Tracks null-ähnliche Werte im Eingabe-Array enthalten können und dass diese Werte je nach Track unterschiedlich dargestellt werden. Solche Werte solltest du aus dem abgeflachten Array ausschließen.
Außerdem kann die Eingabe je nach Track einen anderen Datentyp haben und unterschiedliche Typen enthalten.
Schau in die Testsuite, um Details zu erfahren.
Eingabe: [1, [2, 6, null], [[null, [4]], 5]]
Ausgabe: [1, 2, 6, 4, 5]
Die obigen Anweisungen werden mit einem gemeinsamen Repository synchronisiert, um Konsistenz über alle Sprach-Tracks hinweg zu gewährleisten. Dieser Anhang bietet zusätzliche Klärungen oder passt die Anweisungen nach Bedarf an, um sie besser an die Ziele des Clojure-Tracks anzupassen.
Für diese Übung im Clojure-Track kannst du annehmen, dass die Eingabe eine beliebige verschachtelte Kombination aus Vektoren ist und die Ausgabe ein Vektor ist, wie die Tests zeigen. Das ist jedoch keine strikte Voraussetzung; es steht dir frei, anzunehmen, dass die Eingabe eine beliebige verschachtelte Kombination sequenzieller Dinge (Listen, Vektoren usw.) ist und die Ausgabe eine Sequenz ist.
Melde dich bei Exercism an, um Clojure mit 12 Konzepte105 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.