Une cargaison de matériel d'urgence est arrivée, mais il y a un problème. Pour les protéger des dommages, les articles (lampes torches, trousses de premiers secours, couvertures) sont rangés dans des boîtes, et certaines de ces boîtes sont imbriquées sur plusieurs niveaux à l'intérieur d'autres boîtes !
Pour être prêt en cas d'urgence, tout doit être facilement accessible dans une seule boîte. Peux-tu déballer tout le matériel et le placer dans une seule boîte, pour qu'il soit prêt au moment où on en a le plus besoin ?
Prends un tableau imbriqué, quelle que soit sa profondeur, et renvoie un tableau entièrement aplati.
Note que certains parcours peuvent inclure des valeurs de type null dans le tableau d'entrée, et que la façon dont ces valeurs sont représentées varie d'un parcours à l'autre. Ces valeurs doivent être exclues du tableau aplati.
De plus, selon le parcours, l'entrée peut être d'un autre type et contenir des types différents.
Consulte la suite de tests pour plus de détails.
entrée : [1, [2, 6, null], [[null, [4]], 5]]
sortie : [1, 2, 6, 4, 5]
Sans utiliser la méthode d'aplatissement intégrée, tu peux écrire la tienne, mais il te faudra faire la distinction entre ce qui est une collection et ce qui n'en est pas une. Sinon, si tu choisis d'utiliser les méthodes d'aplatissement intégrées, tu devras créer un nouveau type Stream pour corriger le comportement incorrect.
Inscris-toi sur Exercism pour apprendre et maîtriser Pharo avec 50 exercices, et un vrai mentorat humain, le tout gratuitement.