Lasagna

Lasagna

Esercizio di apprendimento

Introduzione

Le basi

Le funzioni

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)
}

Le variabili

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
}

Le stringhe letterali

In Gleam le stringhe si scrivono con i doppi apici.

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

I commenti nel codice

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
}

Istruzioni

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.

1. Definire il tempo previsto in forno, in minuti

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

2. Calcolare il tempo rimanente in forno, in minuti

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

3. Calcolare il tempo di preparazione in minuti

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

4. Calcolare il tempo di lavoro totale in minuti

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

5. Creare una notifica che la lasagna è pronta

Definisci la funzione alarm, che non accetta argomenti e restituisce un messaggio che indica che la lasagna è pronta da mangiare.

alarm()
// -> "Ding!"
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Gleam Exercism

Vuoi iniziare Lasagna?

Iscriviti a Exercism per imparare e padroneggiare Gleam con 33 concetti122 esercizi e il mentoring di persone reali, tutto gratis.