Em Gleam, as funções definem-se com a sintaxe pub fn.
pub fn add(x: Int, y: Int) -> Int {
x + y
}
Esta função recebe dois argumentos, ambos do tipo Int, e devolve um valor do tipo Int. Não existe a palavra-chave return em Gleam: o valor da última expressão de uma função é sempre devolvido implicitamente.
As anotações de tipo dos argumentos e o tipo devolvido são opcionais, e o Gleam verifica sempre completamente os tipos do teu código. Normalmente, quem programa em Gleam dá anotações de tipo às suas funções por clareza, mas podes omiti-las se quiseres.
pub fn add(x, y) {
x + y
}
Podes chamar uma função com a sintaxe function_name(argument1, argument2).
pub fn double(x: Int) -> Int {
// Call the add function defined above
add(x, x)
}
Em Gleam, as variáveis definem-se com a sintaxe let name = expression.
pub fn main() {
let count = 1
}
As variáveis podem ser declaradas com anotações de tipo. Tal como nos argumentos de uma função, estas 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
}
Em Gleam, as strings escrevem-se com aspas duplas.
pub fn greeting() {
"Hello, world!"
}
Podes usar comentários para deixar notas a outros programadores que leiam o código-fonte. Em Gleam, os comentários são linhas únicas precedidas de //.
pub fn main() {
// This is a comment
let x = 1
}
Neste exercício vais escrever código para te ajudar a cozinhar uma lasanha fabulosa, seguindo o teu livro de receitas preferido.
Tens cinco tarefas, todas relacionadas com o tempo gasto a cozinhar a lasanha.
Define a função expected_minutes_in_oven, que não recebe argumentos e devolve quantos minutos a lasanha deve estar no forno. Segundo o livro de receitas, o tempo esperado no forno é de 40 minutos:
expected_minutes_in_oven()
// -> 40
Define a função remaining_minutes_in_oven, que recebe como argumento os minutos que a lasanha já esteve no forno e devolve quantos minutos a lasanha ainda tem de permanecer no forno, com base no tempo esperado no forno da tarefa anterior.
remaining_minutes_in_oven(30)
// -> 10
Define a função preparation_time_in_minutes, que recebe como argumento o número de camadas que adicionaste à lasanha e devolve quantos minutos gastaste a preparar a lasanha, partindo do princípio de que cada camada te leva 2 minutos a preparar.
preparation_time_in_minutes(2)
// -> 4
Define a função total_time_in_minutes, que recebe dois argumentos: o primeiro argumento é o número de camadas que adicionaste à lasanha e o segundo argumento é o número de minutos que a lasanha já esteve no forno. A função deve devolver o número total de minutos que dedicaste a cozinhar a lasanha, ou seja, a soma do tempo de preparação, em minutos, com o tempo, em minutos, que a lasanha esteve no forno até ao momento.
total_time_in_minutes(3, 10)
// -> 16
Define a função alarm, que não recebe argumentos e devolve uma mensagem a indicar que a lasanha está pronta a comer.
alarm()
// -> "Ding!"
Inscreve-te no Exercism para aprenderes e dominares Gleam com 33 conceitos122 exercícios, e mentoria humana real, tudo grátis.