Skip to content

Instantly share code, notes, and snippets.

@coproduto
Last active May 8, 2024 22:58
Show Gist options
  • Save coproduto/732316fa47094ee6d87e300a618be4b0 to your computer and use it in GitHub Desktop.
Save coproduto/732316fa47094ee6d87e300a618be4b0 to your computer and use it in GitHub Desktop.
defmodule Parens do
def generate(n) do
n
|> generate_trees()
|> Enum.map(&IO.iodata_to_binary/1)
end
defp generate_trees(0), do: []
defp generate_trees(1), do: [["()"]]
defp generate_trees(n) do
Enum.flat_map(generate_tree(n - 1), fn
["()" | _rest] = list ->
[["()", list], ["(", list, ")"]]
list ->
[["()", list], ["(", list, ")"], [list, "()"]]
end)
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment