Recursión: Aplanar las curvas

El anidamiento de listas puede verse indirectamente como curvas y barreras de los datos reales incrustados en las listas y, por lo tanto, frustra el propósito mismo de acceder a ellos directamente mediante índices y segmentos. En este desafío, se requiere una función para aplanar esas curvas (es decir, nivelar, planchar, comprimir, arrasar, derribar) y exponer esos datos como una sola lista y no como una lista de listas.

Ejemplos

flatten([[[[[["direction"], [372], ["one"], [[[[[["Era"]]]], "Sruth", 3337]]], "First"]]]])
➞ ["direction", 372, "one", "Era", "Sruth", 3337, "First"]

flatten([[4666], [5394], [466], [[["Saskia", [[[[["DXTD"]], "Lexi"]]]]]]])
➞ [4666, 5394, 466, "Saskia", "DXTD", "Lexi"]

flatten([[696], ["friend"], ["power"], [[[["Marcus"]]]], ["philus"]])
➞ [696, "friend", "power", "Marcus", "philus"]

flatten([[["deep"], [[["ocean"]]], [["Marge"]], ["rase", 876]]])
➞ ["deep", "ocean", "Marge", "rase", 876]

Notas

  • No hay listas vacías que manejar.
  • Se espera que resuelvas este desafío usando un enfoque recursivo.
  • Puedes leer más sobre recursión (consulta la pestaña Recursos) si aún no estás familiarizado con ella o si todavía no comprendes completamente el concepto antes de abordar este desafío.