I'm playing around with pattern match and I found out, that it's not quite easy to pattern match parameters of a method against an empty map. I thought it would go something like this:
defmodule PatternMatch do
def modify(%{}) do
%{}
end
def modify(map) do
# expensive operation
%{ modified: "map" }
end
end
But it seems like the first function clause matches arbitrary maps:
iex> PatternMatch.modify(%{a: "map"})
==> %{}
Is there another way to check for empty maps?