Lasagna

Lasagna

Exercício de aprendizagem

Introdução

Noções básicas

Funções

No Gleam, as funções são definidas com a sintaxe pub fn.

pub fn add(x: Int, y: Int) -> Int {
  x + y
}

Essa função recebe dois argumentos, ambos do tipo Int, e retorna um valor do tipo Int. Não existe a palavra-chave return no Gleam: o valor da última expressão de uma função é sempre retornado implicitamente.

As anotações de tipo dos argumentos e do tipo de retorno são opcionais, e o Gleam sempre fará a verificação de tipos completa do seu código. Normalmente, quem programa em Gleam adiciona anotações de tipo às funções para deixar tudo mais claro, mas você pode omiti-las se quiser.

pub fn add(x, y) {
  x + y
}

Uma função pode ser chamada com a sintaxe function_name(argument1, argument2).

pub fn double(x: Int) -> Int {
  // Call the add function defined above
  add(x, x)
}

Variáveis

No Gleam, as variáveis são definidas com a sintaxe let name = expression.

pub fn main() {
  let count = 1
}

As variáveis podem ser declaradas com anotações de tipo. Assim como acontece com os argumentos de função, elas são opcionais, embora a maioria de quem programa em Gleam omita as anotações de tipo das variáveis para ser mais breve.

pub fn main() {
  let count: Int = 1
}

Literais de string

No Gleam, as strings são escritas com aspas duplas.

pub fn greeting() {
  "Hello, world!"
}

Comentários no código

Os comentários servem para deixar anotações para quem for ler o código-fonte. No Gleam, os comentários são de uma única linha e começam com //.

pub fn main() {
  // This is a comment
  let x = 1
}

Instruções

Neste exercício, você vai escrever um código para ajudar a preparar uma lasanha incrível do seu livro de receitas favorito.

Você tem cinco tarefas, todas relacionadas ao tempo gasto no preparo da lasanha.

1. Defina o tempo esperado no forno em minutos

Defina a função expected_minutes_in_oven, que não recebe nenhum argumento e retorna quantos minutos a lasanha deve ficar no forno. De acordo com o livro de receitas, o tempo esperado no forno em minutos é 40:

expected_minutes_in_oven()
// -> 40

2. Calcule o tempo restante no forno em minutos

Defina a função remaining_minutes_in_oven, que recebe como argumento os minutos que a lasanha já passou no forno e retorna quantos minutos ela ainda precisa ficar lá, com base no tempo esperado no forno em minutos da tarefa anterior.

remaining_minutes_in_oven(30)
// -> 10

3. Calcule o tempo de preparo em minutos

Defina a função preparation_time_in_minutes, que recebe como argumento o número de camadas que você adicionou à lasanha e retorna quantos minutos você gastou preparando a lasanha, considerando que cada camada leva 2 minutos para preparar.

preparation_time_in_minutes(2)
// -> 4

4. Calcule o tempo total de trabalho em minutos

Defina a função total_time_in_minutes, que recebe dois argumentos: o primeiro argumento é o número de camadas que você adicionou à lasanha, e o segundo é o número de minutos que a lasanha já passou no forno. A função deve retornar quantos minutos no total você trabalhou preparando a lasanha, ou seja, a soma do tempo de preparo em minutos com o tempo em minutos que a lasanha já passou no forno até o momento.

total_time_in_minutes(3, 10)
// -> 16

5. Crie uma notificação de que a lasanha está pronta

Defina a função alarm, que não recebe nenhum argumento e retorna uma mensagem indicando que a lasanha está pronta para comer.

alarm()
// -> "Ding!"
Editar via GitHub O link abre em uma nova janela ou aba
Gleam Exercism

Tudo pronto para começar Lasagna?

Crie sua conta no Exercism para aprender e dominar Gleam com 33 conceitos122 exercícios e mentoria humana de verdade, tudo de graça.