In Gleam le funzioni si definiscono con la sintassi pub fn.
pub fn add(x: Int, y: Int) -> Int {
x + y
}
Questa funzione prende due argomenti, entrambi di tipo Int, e restituisce un valore di tipo Int. In Gleam non esiste la parola chiave return: il valore dell'ultima espressione di una funzione viene sempre restituito in modo implicito.
Le annotazioni di tipo per gli argomenti e il tipo restituito sono facoltative, e Gleam controllerà comunque sempre i tipi del tuo codice in modo completo. Di solito chi programma in Gleam aggiunge le annotazioni di tipo alle proprie funzioni per chiarezza, ma puoi ometterle se preferisci.
pub fn add(x, y) {
x + y
}
Una funzione si può chiamare con la sintassi function_name(argument1, argument2).
pub fn double(x: Int) -> Int {
// Call the add function defined above
add(x, x)
}
In Gleam le variabili si definiscono con la sintassi let name = expression.
pub fn main() {
let count = 1
}
Le variabili si possono dichiarare con le annotazioni di tipo. Come per gli argomenti delle funzioni, sono facoltative, anche se chi programma in Gleam di solito omette le annotazioni di tipo per le variabili per brevità.
pub fn main() {
let count: Int = 1
}
In Gleam le stringhe si scrivono con i doppi apici.
pub fn greeting() {
"Hello, world!"
}
I commenti si possono usare per lasciare note ad altri sviluppatori che leggono il codice sorgente. In Gleam i commenti sono singole righe precedute da //.
pub fn main() {
// This is a comment
let x = 1
}
In questo esercizio scriverai del codice per aiutarti a preparare una lasagna perfetta dal tuo libro di cucina preferito.
Hai cinque attività, tutte legate al tempo necessario a cucinare la lasagna.
Definisci la funzione expected_minutes_in_oven, che non accetta argomenti e restituisce per quanti minuti la lasagna deve stare in forno. Secondo il libro di cucina, il tempo previsto in forno è di 40 minuti:
expected_minutes_in_oven()
// -> 40
Definisci la funzione remaining_minutes_in_oven, che accetta come argomento i minuti effettivi che la lasagna ha già passato in forno e restituisce per quanti minuti la lasagna deve ancora restare in forno, in base al tempo previsto in forno dell'attività precedente.
remaining_minutes_in_oven(30)
// -> 10
Definisci la funzione preparation_time_in_minutes, che accetta come argomento il numero di strati che hai aggiunto alla lasagna e restituisce quanti minuti hai impiegato a prepararla, supponendo che ogni strato richieda 2 minuti di preparazione.
preparation_time_in_minutes(2)
// -> 4
Definisci la funzione total_time_in_minutes, che accetta due argomenti: il primo è il numero di strati che hai aggiunto alla lasagna, il secondo è il numero di minuti che la lasagna ha passato in forno. La funzione deve restituire quanti minuti in totale hai lavorato alla cottura della lasagna, cioè la somma del tempo di preparazione in minuti e del tempo in minuti che la lasagna ha trascorso in forno fino a quel momento.
total_time_in_minutes(3, 10)
// -> 16
Definisci la funzione alarm, che non accetta argomenti e restituisce un messaggio che indica che la lasagna è pronta da mangiare.
alarm()
// -> "Ding!"
Iscriviti a Exercism per imparare e padroneggiare Gleam con 33 concetti122 esercizi e il mentoring di persone reali, tutto gratis.