Função de correspondência de padrão em relação ao mapa vazio
Estou brincando com a correspondência de padrões e descobri que não é fácil padronizar os parâmetros de correspondência de um método em um mapa vazio. Eu pensei que seria algo como isto:
defmodule PatternMatch do
def modify(%{}) do
%{}
end
def modify(map) do
# expensive operation
%{ modified: "map" }
end
end
Mas parece que a primeira cláusula de função corresponde a mapas arbitrários:
iex> PatternMatch.modify(%{a: "map"})
==> %{}
Existe outra maneira de verificar se há mapas vazios?