Track
/
Elm
Elm
/
Esercizi
/
Le deliziose lasagne di Lucian
Le deliziose lasagne di Lucian

Le deliziose lasagne di Lucian

Esercizio di apprendimento

Introduzione

Basi 1

Costanti e funzioni

Un valore costante si definisce con name = expression: in Elm, tutto ciò che non è una definizione è un'espressione.

five = 5

six = 3 + 3

Le funzioni si definiscono con name parameters... = expression, con i parametri separati soltanto da uno spazio.

add number1 number2 = number1 + number2

Anche chiamare una funzione è un'espressione, e si fa specificando il nome della funzione e passando un argomento per ciascuno dei suoi parametri, separati da uno spazio, proprio come nella definizione di una funzione.

five = add 2 3

Le parentesi tonde (()) possono essere usate per specificare l'ordine di valutazione di un'espressione.

six = add 2 (1 * 4)

twelve = add 2 1 * 4

Indentazione / spazi significativi

Elm non usa marcatori sintattici come parentesi graffe, parentesi tonde o punti e virgola per delimitare il codice. Usa invece gli spazi e le indentazioni.

  • Le definizioni di moduli, gli import e le funzioni di primo livello devono iniziare dalla colonna più a sinistra.
  • Se un'espressione è divisa su più righe, il codice che fa parte di quell'espressione deve essere indentato sotto l'espressione con almeno uno spazio.
  • Le parti dell'espressione raggruppate insieme dovrebbero essere indentate con lo stesso numero di spazi.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
    number1 + number2

https://elmprogramming.com/indentation.html

Moduli

Ogni file in Elm è un modulo, e deve contenere un'istruzione module prima di ogni altro codice. I nomi dei moduli devono corrispondere al nome del file, quindi il modulo Calculator deve trovarsi nel file Calculator.elm. Tutto ciò che è definito all'interno di un modulo ha uno scope privato rispetto ad esso e non è accessibile dall'esterno del modulo, a meno che non sia elencato in exposing.

-- Define the Calculator module, and expose the `add` function
module Calculator exposing (add)

six = 3 + 3

add number1 number2 = number1 + number2
-- Define the Calculator module, and expose everything within: `six` and `add`
module Calculator exposing (..)

six = 3 + 3

add number1 number2 = number1 + number2

https://elm-lang.org/docs/syntax#modules

Commenti

Un commento è del testo all'interno del file Elm che non viene interpretato come codice. Serve soprattutto a essere letto da te e da altri programmatori. Esiste una sintassi leggera per i commenti su una sola riga, basata sui doppi trattini. I commenti multilinea sono possibili anche con la coppia {- e -} di delimitatori di apertura e chiusura.

-- a single line comment
-- another single line comment

{- a multiline comment
   spawning multiple lines
-}

Formattazione

Esiste una guida di stile, e elm-format può essere usato per formattare il codice automaticamente.

Istruzioni

In questo esercizio scriverai del codice per aiutarti a cucinare una lasagna favolosa dal tuo ricettario preferito.

Hai tre attività, tutte legate al tempo dedicato alla cottura della lasagna.

1. Definisci il tempo previsto in forno in minuti

Definisci expectedMinutesInOven per calcolare quanti minuti la lasagna deve stare in forno. Secondo il ricettario, il tempo previsto in forno è di 40 minuti:

expectedMinutesInOven
    --> 40

2. Calcola il tempo di preparazione in minuti

Definisci preparationTimeInMinutes, che prende come parametro il numero di strati della lasagna e restituisce quanti minuti servono per prepararla, assumendo che ogni strato richieda 2 minuti di preparazione.

preparationTimeInMinutes 3
    --> 6

3. Calcola il tempo trascorso in minuti

Definisci la funzione elapsedTimeInMinutes, che prende due parametri: il primo è il numero di strati della lasagna, il secondo è il numero di minuti che la lasagna ha passato in forno. La funzione deve restituire quanti minuti hai dedicato 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.

elapsedTimeInMinutes 3 20
    --> 26
Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Elm Exercism

Vuoi iniziare Le deliziose lasagne di Lucian?

Iscriviti a Exercism per imparare e padroneggiare Elm con 28 concetti110 esercizi e il mentoring di persone reali, tutto gratis.