Puedes usar un alias de tipo en Gleam para dar un nombre conveniente a un tipo existente que de otro modo sería engorroso de escribir.
pub type Headers =
List(#(String, String))
pub fn html_headers() -> Headers {
[
#("content-type", "text/html"),
#("x-frame-options", "DENY"),
]
}
Cuando se escribe con pub type, el alias se puede usar fuera del módulo en el que se define. Si se omite pub, el alias es privado y no se puede referenciar en otros módulos.
Los diccionarios en Gleam son la estructura de datos para almacenar información en pares clave-valor. En otros lenguajes, también se conocen como arreglos asociativos, hashes o diccionarios.
Se puede usar cualquier tipo para las claves y los valores en un diccionario, y no garantizan el orden de sus entradas cuando se accede a ellas o se devuelven.
Los diccionarios se crean y manipulan usando funciones del módulo 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")
En este ejercicio, vas a implementar una forma de llevar un registro de los puntajes más altos del juego más popular de tu salón de arcade local.
Tienes 5 funciones para implementar, en su mayoría relacionadas con manipular un objeto que contiene puntajes altos.
Crea una función create_score_board que devuelva un dict que sirva como tablero de puntajes.
Las claves de este objeto serán los nombres de los jugadores y los valores serán sus puntajes.
Para fines de prueba, quieres incluir directamente una entrada en el objeto.
Esta entrada inicial debe consistir en "The Best Ever" como nombre del jugador y 1_000_000 como puntaje.
create_score_board()
// returns an object with one initial entry
Para agregar un jugador al tablero de puntajes, define la función add_player.
Acepta 3 parámetros:
La función devuelve un dict con el nuevo jugador y su puntaje agregados.
Si los jugadores violan las reglas del salón de arcade, se los elimina manualmente del tablero de puntajes.
Define remove_player, que toma 2 parámetros:
Esta función debe devolver el dict sin el jugador que se eliminó.
Si el jugador no estaba en el tablero desde un principio, no debe pasarle nada al tablero, se debe devolver tal cual.
Si un jugador termina otro juego en el salón de arcade, se agregará cierta cantidad de puntos al puntaje anterior en el tablero.
Implementa update_score, que toma 3 parámetros:
La función debe devolver un dict con el puntaje actualizado.
Si el jugador no estaba en el tablero desde un principio, no debe pasarle nada al tablero, se debe devolver tal cual.
El salón de arcade mantiene un tablero de puntajes aparte los lunes. Al final del día, cada jugador de ese tablero recibe 100 puntos adicionales.
Implementa la función apply_monday_bonus que acepta un tablero de puntajes.
La función devuelve un dict con los puntos de bonificación agregados para cada jugador que figura en ese tablero.
Regístrate en Exercism para aprender y dominar Gleam con 33 conceptos122 ejercicios y mentoría humana real, todo gratis.