TP
xy
Size: a a a
TP
xy
LL
data1 = [%{«name» => «John»}]
data2 = [%{«age» => 30}]
esult = [%{«name» => «John», «age» => 30}]?
def zip_lists_of_maps(l1, l2, ans \\ [])
def zip_lists_of_maps(_, [], ans), do: ans
def zip_lists_of_maps([], _, ans), do: ans
def zip_lists_of_maps([m1 | l1], [m2 | l2], ans) do
zip_lists_of_,maps(l1, l2, [Map.mrege(m1, m2) | ans])
end
ŹR
def zip_lists_of_maps(l1, l2, ans \\ [])
def zip_lists_of_maps(_, [], ans), do: ans
def zip_lists_of_maps([], _, ans), do: ans
def zip_lists_of_maps([m1 | l1], [m2 | l2], ans) do
zip_lists_of_,maps(l1, l2, [Map.mrege(m1, m2) | ans])
end
LL
tail recursion
и всего один проход по спискамŹR
tail recursion
и всего один проход по спискамLL
port_driver
TP
Enum.zip(m1, m2) |> Enum.map(fn {m1, m2} -> Map.merge(m1, m2) end)
fn {m1, m2} -> …
Это такой синтаксис у деструктуринга?ŹR
AB
iex> data1 = [%{"name" => "John"}]
[%{"name" => "John"}]
iex> data2 = [%{"age" => 30}]
[%{"age" => 30}]
iex> data1 ++ data2
[%{"name" => "John"}, %{"age" => 30}]
iex> (data1 ++ data2) |> Enum.reduce(%{}, fn(x, acc) -> Map.merge(acc, x) end)
%{"age" => 30, "name" => "John"}
iex> (data1 ++ data2) |> Enum.reduce(%{}, &(Map.merge(&1, &2)))
%{"age" => 30, "name" => "John"}
T
T
data1 = [%{«name» => «John»}]
data2 = [%{«age» => 30}]
esult = [%{«name» => «John», «age» => 30}]?
T
TP
T
T
TP
T
data1 = [%{«name» => «John»}]
data2 = [%{«age» => 30}]
esult = [%{«name» => «John», «age» => 30}]?
T
TP