So erstelle ich einen IRC-Server, und ich habe eine Funktion, die einen Benutzer aus einer Karte entfernt. Die Idee ist, Mustervergleiche zu verwenden, so dass eine Version einer Funktion aufgerufen wird, wenn der Benutzer in der Karte ist und eine andere Funktion sonst aufgerufen wird.Wie kann ich Muster in einer Funktion zuordnen, in der eine Map einen Schlüssel mit dem übergebenen Wert hat?
Meine erste Idee war folgendes zu tun:
remove_user_from_channel(User, Channel=#channel_details{users = UserMap=#{User := _}}) ->
Channel#channel_details{users = maps:remove(User, UserMap)}.
Dies ist jedoch nicht variable 'User' is unbound
mit dem Fehler kompilieren.
Gibt es eine Möglichkeit, dies mit der Übereinstimmung von Funktionsebenenmustern zu erreichen?