Enum.group_by/3
defmodule Enum do
def group_by(enumerable, key_fun, val_fun \\ fn x -> x end)
end
Splits the enumerable into groups based on key_fun.
The result is a map where each key is given by key_fun and each value is a list of elements given by value_fun. The order of elements within each list is preserved from the enumerable. However, like all maps, the resulting map is unordered.