exercism-elixir/high-score/lib/high_score.ex
2022-02-01 18:03:00 -04:00

14 lines
445 B
Elixir

defmodule HighScore do
@initial_score 0
def new(), do: %{}
def add_player(scores, name, score \\ @initial_score), do: Map.put_new(scores, name, score)
def remove_player(scores, name), do: Map.delete(scores, name)
def reset_score(scores, name), do: Map.put(scores, name, @initial_score)
def update_score(scores, name, score), do: Map.update(scores, name, score, &(&1 + score))
def get_players(scores), do: Map.keys(scores)
end