Task

Write a function to flatten the nesting in an arbitrary list of values.

Your program should work on the equivalent of this list:

  [[1], 2, [[3, 4], 5], [[[]]], [[[6]]], 7, 8, []]

Where the correct result would be the list:

   [1, 2, 3, 4, 5, 6, 7, 8]

Related task

   Tree traversal


 
defmodule RC do
  def flatten([]), do: []
  def flatten([h|t]), do: flatten(h) ++ flatten(t)
  def flatten(h), do: [h] 
end
 
list = [[1], 2, [[3,4], 5], [[[]]], [[[6]]], 7, 8, []] 
 
# Our own implementation
IO.inspect RC.flatten(list)
# Library function
IO.inspect List.flatten(list)
 