module AggregateScorers exposing (..)
import Dict exposing (Dict)
aggregateScorers : List String -> List String
aggregateScorers playerNames =
let
dict = List.foldl (\elem acc ->
if Dict.member elem acc
then
Dict.update elem (Maybe.map <| \count -> count + 1) acc
else
Dict.insert elem 1 acc
) Dict.empty playerNames
in
List.map (\orig ->
let
val = Dict.get orig dict
in
if val == Just 1
then
orig
else
orig ++ " (" ++ String.fromInt (Maybe.withDefault 0 val) ++ ")"
) <| List.sort <| Dict.keys dict