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
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.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
number1 + number2
https://elmprogramming.com/indentation.html
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
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
-}
Esiste una guida di stile, e elm-format può essere usato per formattare il codice automaticamente.
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.
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
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
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
Iscriviti a Exercism per imparare e padroneggiare Elm con 28 concetti110 esercizi e il mentoring di persone reali, tutto gratis.