Comprehensions - what does into %{} do?

Hey! I came across this in the book Elixir in Action and am wondering what the into %{} does here?

iex(6)> multiplication_table =
          for x <- 1..9, y <- 1..9,
              x <= y,    ①  
              into: %{} do
            {{x, y}, x*y}
          end

iex(7)> multiplication_table[{6, 7}]
42

iex(8)> multiplication_table[{7, 6}]
nil

Juric, Sasa. Elixir in Action (pp. 196-197). Manning. Kindle Edition.

Oh I tried it out in the terminal and it makes sense now it puts all the results into a map.

%{
{4, 5} => 20,
{5, 9} => 45,
{1, 2} => 2,
{3, 6} => 18,
{2, 4} => 8,
{4, 8} => 32,
{1, 1} => 1,
{3, 7} => 21,
{8, 9} => 72,
{7, 9} => 63,
{2, 7} => 14,
{4, 6} => 24,
{5, 8} => 40,
{2, 8} => 16,
{1, 4} => 4,
{5, 6} => 30,
{6, 6} => 36,
{6, 8} => 48,
{1, 7} => 7,
{8, 8} => 64,
{2, 3} => 6,
{1, 8} => 8,
{3, 4} => 12,
{7, 8} => 56,
{4, 7} => 28,
{3, 3} => 9,
{4, 9} => 36,
{7, 7} => 49,
{1, 6} => 6,
{5, 5} => 25,
{1, 9} => 9,
{3, 5} => 15,
{2, 6} => 12,
{1, 5} => 5,
{2, 5} => 10,
{2, 2} => 4,
{5, 7} => 35,
{6, 9} => 54,
{4, 4} => 16,
{6, 7} => 42,
{3, 8} => 24,
{1, 3} => 3,
{9, 9} => 81,
{3, 9} => 27,
{2, 9} => 18
}

1 Like

take a look to understand what it essentially does

1 Like