advent_of_code/elixir/lib/util/enum.ex
2024-11-15 21:03:49 -05:00

17 lines
394 B
Elixir

defmodule AoC.Util.Enum do
@doc """
Transposes (in the sense of matrices) a collection of nested enums.
iex> AoC.Util.Enum.transpose(
iex> [[1,2,3], [4,5,6], [7,8,9]]
iex> )
[[1,4,7],[2,5,8],[3,6,9]]
"""
def transpose(enum) do
col_count = enum |> Enum.at(0) |> Enum.count()
for col <- 0..(col_count - 1) do
enum |> Enum.map(&Enum.at(&1, col))
end
end
end