Elm (linguaggio di programmazione): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m Bot: inserimento portale (via JWB)
 
(Una versione intermedia di un altro utente non mostrate)
Riga 76:
{- I commenti su più righe possono essere {- annidati -} -}
 
{--| Qui definiamo un valore chiamato ''saluti''. Il tipo viene inferito essere String.
 
La pipe (|) all'inizio del commento indica che questa è documentazione per il valore che stiamo definendo.
 
-}
saluti =
"Hello World!"
 
 
{--| È meglio aggiungere annotazioni di tipo alle dichiarazioni di primo livello.
-}
ciao : String
ciao =
"Ehilà."
 
 
{--| Le funzioni si dichiarano allo stesso modo, con gli argomenti che seguono il nome della funzione.
-}
aggiungi x y =
x + y
 
 
{--| Ancora, è meglio aggiungere le annotazioni di tipo.
-}
ipotenusa : Float -> Float -> Float
ipotenusa a b =
sqrt (a ^ 2 + b ^ 2)
 
 
-- Le espressioni `if` si usano per fare diramazioni in base a valori
valoreAssoluto : Int -> Int
valoreAssoluto numero =
-- Le espressioni `if` si usano per fare diramazioni in base a valori
if numero < 0 then -numero else numero
-numero
 
else
-- I record si usano per tenere valori in campi aventi un nome
numero
libro : { titolo:String, autore:String, pagine:Int }
 
 
{--| I record si usano per tenere valori in campi aventi un nome
-}
libro : { titolo : String, autore : String, pagine : Int }
libro =
{ titolo = "Steppenwolf"
, autore = "Hesse"
, pagine = 237
}
 
 
{--| Possiamo creare tipi completamente nuovi usando la parola-chiave `type`.
-- Il seguente valore rappresenta un albero binario.
 
-- Il seguente valore rappresenta un albero binario.
 
-}
type Albero a
= Vuoto
| Nodo a (Albero a) (Albero a)
 
 
{--| È possibile ispezionare questi tipi usando espressioni `case`.
-}
profondita : Albero a -> Int
profondita albero =
case albero of
Vuoto -> 0
0

Nodo valore sinistra destra ->
1 + max (profondita sinistra) (profondita destra)
</syntaxhighlight>
 
Riga 127 ⟶ 152:
==Collegamenti esterni==
* {{Collegamenti esterni}}
 
{{Portale|informatica}}
 
[[Categoria:Linguaggi di programmazione funzionali]]