Three data types that go `into` a Map
Enum.into
can be used to put different types of things into different types of collections. For instance I can put elements from one list into another list.
iex> Enum.into([4], [1,2,3])
[1, 2, 3, 4]
It works with Maps too and there's different types of things than can go into a map. A map can certainly go into another map:
iex> Enum.into(%{"a" => 1}, %{"b" => 2})
%{"a" => 1, "b" => 2}
Keyword lists also go into a map:
iex> Enum.into([a: 1], %{"b" => 2})
%{:a => 1, "b" => 2}
And lists of tuples also go into a map:
iex> Enum.into([{"a", 1}], %{"b" => 2})
%{"a" => 1, "b" => 2}
But only when there are two elements in the tuple:
iex(32)> Enum.into([{"a", 1, 3}], %{"b" => 2})
** (ArgumentError) argument error
(stdlib) :maps.from_list([{"a", 1, 3}])
(elixir) lib/enum.ex:1072: Enum.into/2
Tweet