Pattern Match Funktion gegen leere Map

Ich spiele mit Pattern Match herum und habe festgestellt, dass es nicht ganz einfach ist, Pattern Match-Parameter einer Methode mit einer leeren Map zu vergleichen. Ich dachte, es würde so etwas gehen:

defmodule PatternMatch do
  def modify(%{}) do
    %{}
  end

  def modify(map) do
    # expensive operation
    %{ modified: "map" }
  end
end

Aber es scheint, als würde die erste Funktionsklausel mit beliebigen Maps übereinstimmen:

iex> PatternMatch.modify(%{a: "map"})
==> %{}

Gibt es eine andere Möglichkeit, nach leeren Karten zu suchen?

Antworten auf die Frage(6)

Ihre Antwort auf die Frage