Hi I look for a transpose function in Elixir.
For example I have this kind of array a
and after calling a function the result should be b
:
a = [[1, 2], [3, 4], [5, 6]]
b = transpose(a)
b => [[1, 3, 5], [2, 4, 6]]
There (still) isn't one in Elixir, but you can use:
def transpose(rows) do
rows
|> List.zip
|> Enum.map(&Tuple.to_list/1)
end
There isn't one in Elixir currently, but you could create your own with:
def transpose([]), do: []
def transpose([[]|_]), do: []
def transpose(a) do
[Enum.map(a, &hd/1) | transpose(Enum.map(a, &tl/1))]
end
Since Elixir v1.12, you can use the following to transpose a two-dimensional list:
Enum.zip_with(list, & &1)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With