O Gleam representa os valores verdadeiro e falso com o tipo Bool. Existem apenas dois valores: True e False. Estes valores podem ser associados a uma variável:
let true_variable = True
let false_variable = False
Os operadores &&, || e ! podem ser usados para manipular valores Boolean:
True && True // -> True
True && False // -> False
False || True // -> True
False || False // -> False
!False // -> True
!True // -> False
Os operadores && e || usam avaliação de curto-circuito. Ou seja, a expressão do lado direito do operador só é avaliada se for necessário.
Cada um dos operadores tem uma precedência diferente: o ! é avaliado antes de && e ||. As chavetas podem ser usadas para avaliar uma parte da expressão antes das outras:
!True && False // -> False
!{True && False} // -> True
Neste exercício, tens de traduzir algumas regras do clássico jogo Pac-Man para funções em Gleam.
Tens quatro regras para traduzir, todas relacionadas com os estados do jogo.
Não te preocupes com a forma como os argumentos são obtidos, concentra-te apenas em combinar os argumentos para devolveres o resultado pretendido.
Define a função eat_ghost que recebe dois argumentos (se o Pac-Man tem uma pastilha de energia ativa e se o Pac-Man está a tocar num fantasma) e devolve um valor Boolean se o Pac-Man consegue comer o fantasma. A função só deve devolver True se o Pac-Man tiver uma pastilha de energia ativa e estiver a tocar num fantasma.
eat_ghost(False, True)
// -> False
Define a função score que recebe dois argumentos (se o Pac-Man está a tocar numa pastilha de energia e se o Pac-Man está a tocar num ponto) e devolve um valor Boolean se o Pac-Man marcou pontos. A função deve devolver True se o Pac-Man estiver a tocar numa pastilha de energia ou num ponto.
score(True, True)
// -> True
Define a função lose que recebe dois argumentos (se o Pac-Man tem uma pastilha de energia ativa e se o Pac-Man está a tocar num fantasma) e devolve um valor Boolean se o Pac-Man perde. A função deve devolver True se o Pac-Man estiver a tocar num fantasma e não tiver uma pastilha de energia ativa.
lose(False, True)
// -> True
Define a função win que recebe três argumentos (se o Pac-Man comeu todos os pontos, se o Pac-Man tem uma pastilha de energia ativa e se o Pac-Man está a tocar num fantasma) e devolve um valor Boolean se o Pac-Man ganha. A função deve devolver True se o Pac-Man comeu todos os pontos e não perdeu com base nos argumentos definidos na parte 3.
win(False, True, False)
// -> False
Inscreve-te no Exercism para aprenderes e dominares Gleam com 33 conceitos122 exercícios, e mentoria humana real, tudo grátis.