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)
}
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
}
No Gleam, as strings são escritas com aspas duplas.
pub fn greeting() {
"Hello, world!"
}
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
}
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.
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
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
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
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
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!"
Crie sua conta no Exercism para aprender e dominar Gleam com 33 conceitos122 exercícios e mentoria humana de verdade, tudo de graça.