Um alias de tipo pode ser usado em Gleam para dar um nome conveniente a um tipo existente que de outra forma seria complicado de escrever.
pub type Headers =
List(#(String, String))
pub fn html_headers() -> Headers {
[
#("content-type", "text/html"),
#("x-frame-options", "DENY"),
]
}
Quando escrito com pub type, o alias pode ser usado fora do módulo onde foi definido. Se pub for omitido, o alias é privado e não pode ser referenciado em outros módulos.
Os dicionários em Gleam são a estrutura de dados para armazenar informações em pares chave-valor. Em outras linguagens, eles também podem ser conhecidos como arrays associativos, hashes ou dicionários.
Qualquer tipo pode ser usado para as chaves e os valores em um dicionário, e eles não garantem a ordem das suas entradas quando acessadas ou retornadas.
Os dicionários são criados e manipulados usando funções do 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")
Neste exercício, você vai implementar uma forma de acompanhar os recordes do jogo mais popular do seu fliperama local.
Você tem 5 funções para implementar, a maioria relacionada a manipular um objeto que guarda recordes.
Crie uma função create_score_board que retorna um dict que serve como placar de recordes.
As chaves desse objeto serão os nomes dos jogadores, e os valores, as pontuações deles.
Para fins de teste, você quer incluir diretamente uma entrada no objeto.
Essa entrada inicial deve ter "The Best Ever" como nome de jogador e 1_000_000 como pontuação.
create_score_board()
// returns an object with one initial entry
Para adicionar um jogador ao placar de recordes, defina a função add_player.
Ela aceita 3 parâmetros:
A função retorna um dict com o novo jogador e a nova pontuação adicionados.
Se os jogadores violarem as regras do fliperama, eles são removidos manualmente do placar de recordes.
Defina remove_player, que recebe 2 parâmetros:
Essa função deve retornar o dict sem o jogador que foi removido.
Se o jogador não estava no placar, nada deve acontecer com o placar: ele deve ser retornado como está.
Se um jogador terminar outro jogo no fliperama, uma certa quantidade de pontos será adicionada à pontuação anterior no placar.
Implemente update_score, que recebe 3 parâmetros:
A função deve retornar um dict com a pontuação atualizada.
Se o jogador não estava no placar, nada deve acontecer com o placar: ele deve ser retornado como está.
O fliperama mantém um placar separado às segundas-feiras. No fim do dia, cada jogador nesse placar ganha 100 pontos adicionais.
Implemente a função apply_monday_bonus, que aceita um placar.
A função retorna um dict com os pontos de bônus adicionados para cada jogador listado nesse placar.
Crie sua conta no Exercism para aprender e dominar Gleam com 33 conceitos122 exercícios e mentoria humana de verdade, tudo de graça.