Agree with NobbZ, I don’t know of any built in functionality for this.
The most efficient way I know to do it is what it sounds like you’ve already done:
def duplicates(list) do
acc_dupes = fn(x, {elems, dupes}) ->
case Map.has_key?(elems, x) do
true -> {elems, Map.put(dupes, x, nil)}
false -> {Map.put(elems, x, nil), dupes}
end
end
list |> Enum.reduce({%{}, %{}}, acc_dupes) |> elem(1) |> Map.keys()
end


















