Az Elm programozási nyelv

Utasítások, vezérlési szerkezetek

Függvények

A nyelv legfőbb elemei a függvények, hasonlít a Hakell-ből ismertekhez, azonban itt a függvények paramétereire nem lehet mintát illeszteni. A nyelv támogat névtelen függvényeket is, amiket lambda-kifejezéssel tudunk megadni:

square1 n = n^2 square2 = \n -> n^2

Elágazások és mintaillesztés

If-kifejezést kétféleképp is megadhatunk, az első a szokásos logikai kiértékelés, a második pedig ugyanez több ággal:

f x = if x < 0 then "negatív" else "nemnegatív" g x = if | x < 0 -> "negatív" | x == 0 -> "nulla" | x > 0 -> "pozitív"

Mintaillesztést a case kifejezéssel tudunk leírni. Minden lehetőséget le kell fednünk, azaz parciális függvények nem adhatók meg a nyelvben.

Ez a szerkezet margószabályos, azaz minden egymás után következő mintát az előzővel azonos behúzással kell megadni.

head l = case l of x :: xs -> Just x [] -> Nothing

Let kifejezés

A let kifejejés segítségével kifejezéseket tudunk névhez kötni, ez a szerkezet is margószabályos. Példa:

let x = 6 y = x + 3 in y + x