En Gleam, un alias de type permet de donner un nom pratique à un type existant qui serait autrement pénible à écrire.
pub type Headers =
List(#(String, String))
pub fn html_headers() -> Headers {
[
#("content-type", "text/html"),
#("x-frame-options", "DENY"),
]
}
Lorsqu'il est écrit avec pub type, l'alias peut être utilisé en dehors du module dans lequel il est défini. Si l'on omet pub, l'alias est privé et ne peut pas être référencé dans d'autres modules.
Les dictionnaires en Gleam sont la structure de données qui permet de stocker des informations sous forme de paires clé-valeur. Dans d'autres langages, on les connaît aussi sous le nom de tableaux associatifs, de tables de hachage ou de dictionnaires.
N'importe quel type peut être utilisé pour les clés et les valeurs d'un dictionnaire, et les dictionnaires ne garantissent pas l'ordre de leurs entrées lorsqu'on y accède ou qu'on les renvoie.
Les dictionnaires se créent et se manipulent à l'aide des fonctions du module gleam/dict.
// Create an empty dict
let dict1 = dict.new()
// Create a dict with some values
let dict2 = dict.from_list([
#("name", "Gleam"),
#("colour", "Pink"),
])
// Add a value to a dict
let dict3 = dict.insert(dict2, "website", "https://gleam.run")
// Get a value from a dict
let name = dict.get(dict3, "name")
// -> Ok("Gleam")
Dans cet exercice, tu vas implémenter un moyen de suivre les meilleurs scores du jeu le plus populaire de la salle d'arcade de ton quartier.
Tu as 5 fonctions à implémenter, qui servent principalement à manipuler un objet qui contient les meilleurs scores.
Crée une fonction create_score_board qui renvoie un dictionnaire qui sert de tableau des meilleurs scores.
Les clés de cet objet seront les noms des joueurs, et les valeurs seront leurs scores.
Pour les tests, tu dois inclure directement une entrée dans l'objet.
Cette entrée initiale doit contenir "The Best Ever" comme nom de joueur et 1_000_000 comme score.
create_score_board()
// returns an object with one initial entry
Pour ajouter un joueur au tableau des meilleurs scores, définis la fonction add_player.
Elle prend 3 paramètres :
La fonction renvoie un dictionnaire avec le nouveau joueur et son score ajoutés.
Si des joueurs enfreignent les règles de la salle d'arcade, ils sont retirés manuellement du tableau des meilleurs scores.
Définis remove_player, qui prend 2 paramètres :
Cette fonction doit renvoyer le dictionnaire sans le joueur qui a été retiré.
Si le joueur n'était pas déjà sur le tableau, rien ne doit changer et le tableau doit être renvoyé tel quel.
Si un joueur termine une autre partie dans la salle d'arcade, un certain nombre de points sera ajouté au score précédent du tableau.
Implémente update_score, qui prend 3 paramètres :
La fonction doit renvoyer un dictionnaire avec le score mis à jour.
Si le joueur n'était pas déjà sur le tableau, rien ne doit changer et le tableau doit être renvoyé tel quel.
La salle d'arcade tient un tableau des meilleurs scores distinct le lundi. À la fin de la journée, chaque joueur de ce tableau reçoit 100 points supplémentaires.
Implémente la fonction apply_monday_bonus, qui prend un tableau des meilleurs scores.
La fonction renvoie un dictionnaire avec les points bonus ajoutés pour chaque joueur inscrit sur ce tableau.
Inscris-toi sur Exercism pour apprendre et maîtriser Gleam avec 33 concepts122 exercices, et un vrai mentorat humain, le tout gratuitement.