Al

Alapok ebben a kurzusban: F#

1 feladat

A(z) Alapok fogalomról

Az F#-ban mindent, aminek típusa van és definiálható, értéknek nevezünk. Ide tartoznak a Boolean-ok, az egész számok és a listák, de a függvények is. Az egész számokat egy vagy több (egymást követő) számjegy alkotja, és támogatják az alapértelmezett matematikai operátorokat.

Amikor egy értéket egy névhez rendelünk, azt kötésnek nevezzük. A kötések nem módosíthatók, ezért más nyelvek állandóihoz hasonlítanak. A kötéseket a let kulcsszóval hozzuk létre.

Mivel az F# statikusan típusos nyelv, minden kötésnek van típusa. A legtöbb kötésnél a típus megadása nem kötelező, mert az F# típuskövetkeztetése általában az érték alapján kitalálja a típust.

// Automatically inferred type
let fingers = 10

A függvények szintén hétköznapi kötések, csak egy vagy több paraméterrel. Egy függvény automatikusan visszaadja az utolsó kifejezését. A típuskövetkeztetés a legtöbb függvénynél is működik: elemzi, hogy milyen értékekkel hívjuk meg a függvényt, és hogy milyen értéket ad vissza.

// Automatically inferred types for parameters and return type
let add x y = x + y

Egy függvényt úgy hívunk meg, hogy leírjuk a nevét, majd minden paraméteréhez átadunk egy-egy argumentumot.

let five = add 2 3

Ha egy kötés típusa nem következtethető ki, a fordító hibát jelez. Ezt úgy javíthatod, hogy megadod a kötés típusát.

// Explicit type annotation
let fingers: int = 10

// Explicit type annotation (also for parameters)
let add (x: int) (y: int): int = x + y

Az F#-ban a kötéseket csak azután használhatod, miután létrehoztad őket. Ha egy kötést a létrehozása előtt használsz, az fordítási hibát okoz.

// Compile error as the add binding has not yet been defined
// let seven = add 3 + 4

let add x y = x + y

A scope kijelölése a jelentős whitespace-szel történik: a kódot a kötést deklaráló sorhoz képest szóközökkel húzod be. Az alapértelmezett konvenció szerint négy szóközzel húzunk be.

let toes =
    let left = 5
    let right = 5
    left + right

let multiplyPlusTwo x y =
    let product = x * y
    product + 2

// Trying to access the left, right or product bindings
// here would result in a compile error

Az F# kötéseit (köztük a függvényeket) általában modulokba szervezzük. Egy modul az egymáshoz tartozó funkcionalitást csoportosítja, és a module kulcsszóval hozzuk létre. A modul definíciójának meg kell előznie a kötéseit:

module Calculator

let pi = 3.14

let add x y = x + y

Az F# kétféle megjegyzést támogat. Az egysoros megjegyzéseket // előzi meg, a többsorosakat pedig (* és *) közé írjuk.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Alapok fogalmat