In Gleam un alias di tipo può servire a dare un nome comodo a un tipo già esistente che altrimenti sarebbe scomodo da scrivere.
pub type Headers =
List(#(String, String))
pub fn html_headers() -> Headers {
[
#("content-type", "text/html"),
#("x-frame-options", "DENY"),
]
}
Quando lo si scrive con pub type, l'alias può essere usato anche fuori dal modulo in cui è definito. Se ometti pub, l'alias è privato e non può essere usato in altri moduli.
In Gleam i dict sono la struttura dati con cui memorizzare informazioni sotto forma di coppie chiave-valore. In altri linguaggi le trovi anche con i nomi di array associativi, hash o dizionari.
Per le chiavi e i valori di un dict puoi usare qualsiasi tipo, e i dict non garantiscono l'ordine delle voci quando vi si accede o quando vengono restituite.
I dict si creano e si manipolano con le funzioni del modulo 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")
In questo esercizio, implementerai un modo per tenere traccia dei punteggi migliori del gioco più popolare della sala giochi della tua zona.
Hai 5 funzioni da implementare, in gran parte legate alla manipolazione di un oggetto che contiene i punteggi migliori.
Crea una funzione create_score_board che restituisce un dict che funge da tabellone dei punteggi.
Le chiavi di questo oggetto saranno i nomi dei giocatori, i valori saranno i loro punteggi.
A fini del test, devi includere direttamente una voce nell'oggetto.
Questa voce iniziale deve contenere "The Best Ever" come nome del giocatore e 1_000_000 come punteggio.
create_score_board()
// returns an object with one initial entry
Per aggiungere un giocatore al tabellone dei punteggi, definisci la funzione add_player.
Accetta 3 parametri:
La funzione restituisce un dict con il nuovo giocatore e il suo punteggio aggiunti.
Se i giocatori violano le regole della sala giochi, vengono rimossi manualmente dal tabellone dei punteggi.
Definisci remove_player, che accetta 2 parametri:
Questa funzione deve restituire il dict senza il giocatore rimosso.
Se il giocatore non era presente nel tabellone, non deve succedere nulla: il tabellone va restituito così com'è.
Se un giocatore termina un'altra partita alla sala giochi, una certa quantità di punti verrà aggiunta al punteggio precedente sul tabellone.
Implementa update_score, che accetta 3 parametri:
La funzione deve restituire un dict con il punteggio aggiornato.
Se il giocatore non era presente nel tabellone, non deve succedere nulla: il tabellone va restituito così com'è.
La sala giochi tiene un tabellone dei punteggi separato il lunedì. Alla fine della giornata, ogni giocatore su quel tabellone riceve 100 punti aggiuntivi.
Implementa la funzione apply_monday_bonus, che accetta un tabellone dei punteggi.
La funzione restituisce un dict con i punti bonus aggiunti per ogni giocatore elencato su quel tabellone.
Iscriviti a Exercism per imparare e padroneggiare Gleam con 33 concetti122 esercizi e il mentoring di persone reali, tutto gratis.