Egy konstans értéket name = expression formában definiálunk, ahol az Elmben minden definíció kivételével kifejezésnek számít.
five = 5
six = 3 + 3
A függvényeket name parameters... = expression formában definiáljuk, a paramétereket pedig csak szóköz választja el egymástól.
add number1 number2 = number1 + number2
Egy függvény meghívása szintén kifejezés, és úgy történik, hogy megadjuk a nevét, majd minden paraméteréhez átadunk egy argumentumot, szóközzel elválasztva, éppúgy, mint a függvény definiálásakor.
five = add 2 3
Zárójelekkel megadhatjuk egy kifejezés kiértékelési sorrendjét.
six = add 2 (1 * 4)
twelve = add 2 1 * 4
Az Elm nem használ szintaktikai jelölőket, például kapcsos zárójelet, zárójelet vagy pontosvesszőt a kódrészek határainak kijelölésére. Helyettük szóközöket és behúzásokat használ.
-- A function split over multiple lines, so subsequent lines must be indented
add number1 number2 =
number1 + number2
https://elmprogramming.com/indentation.html
Az Elmben minden fájl egy modul, és minden más kód előtt szerepelnie kell benne egy module utasításnak.
A modulneveknek meg kell egyezniük a fájlnevükkel, így a Calculator modulnak a Calculator.elm fájlban kell lennie.
A modulon belül definiált bármi privát a láthatósága, és kívülről nem érhető el, kivéve, ha szerepel az exposing listában.
-- 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
A komment az Elm-fájlban lévő szöveg, amelyet a program nem kódként értelmez.
Elsősorban arra szolgál, hogy te és a többi programozó elolvassátok.
Az egysoros kommentekhez van egy egyszerű szintaxis, amely két egymást követő kötőjelen alapul.
Többsoros kommentek is írhatók a {- és -} nyitó és záró határoló párral.
-- a single line comment
-- another single line comment
{- a multiline comment
spawning multiple lines
-}
Létezik egy stílusútmutató, és az elm-format segítségével automatikusan formázhatod a kódot.
Ebben a feladatban olyan kódot írsz majd, amely segít elkészíteni egy ragyogó lasagnét a kedvenc szakácskönyvedből.
Három részfeladat vár rád, és mindegyik a lasagne elkészítésével töltött időhöz kapcsolódik.
Definiáld az expectedMinutesInOven értéket, amely kiszámítja, hány percig kell a lasagnének a sütőben lennie. A szakácskönyv szerint a várható sütési idő 40 perc:
expectedMinutesInOven
--> 40
Definiáld a preparationTimeInMinutes függvényt, amely paraméterként megkapja a lasagne rétegeinek számát, és visszaadja, hány percbe telik a lasagne előkészítése, feltéve hogy minden réteg előkészítése 2 percet vesz igénybe.
preparationTimeInMinutes 3
--> 6
Definiáld az elapsedTimeInMinutes függvényt, amely két paramétert kap: az első paraméter a lasagne rétegeinek száma, a második pedig az, hogy hány percet töltött már a lasagne a sütőben. A függvény adja vissza, hány percet dolgoztál a lasagne elkészítésén, ami nem más, mint az előkészítési idő és a lasagne által a sütőben eddig eltöltött idő összege.
elapsedTimeInMinutes 3 20
--> 26
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Elm nyelvet 28 fogalom110 feladat segítségével, valódi emberi mentorálással, mindez ingyen.