Kurzusok
/
Elixir
Elixir
/
Tanterv
/
Névtelen függvények

Névtelen függvények ebben a kurzusban: Elixir

4 feladat

A(z) Névtelen függvények fogalomról

Az Elixirben a névtelen függvényeket gyakran használjuk önmagukban, visszatérési értékként, és magasabb rendű függvények, például az Enum.map/2 argumentumaként is:

Enum.map([1, 2, 3], fn n -> n + 1 end)
# => [2, 3, 4]

Az Elixirben a függvények első osztályú állampolgárok:

  • A nevesített és a névtelen függvényeket hozzárendelhetjük változókhoz.
  • A nevesített és a névtelen függvények adatként adhatók tovább argumentumként és visszatérési értékként.
  • A névtelen függvények dinamikusan is létrehozhatók.

A névtelen függvényeket a fn kulcsszóval hozzuk létre, és egy ponttal (.) hívjuk meg:

function_variable = fn n -> n + 1 end

function_variable.(1)
# => 2

A névtelen függvényeket a & capture-rövidítéssel is létrehozhatjuk.

  • A kezdeti & jelöli a capture-kifejezés kezdetét.

  • A &1, &2 és így tovább a névtelen függvény pozicionális argumentumaira utalnak.

    # Instead of:
    fn x, y -> abs(x) + abs(y) end
    
    # We can write:
    &(abs(&1) + abs(&2))
    
  • A & capture-operátorral meglévő nevesített függvényeket is capture-ölhetünk:

    # Instead of:
    fn a, b -> a <= b end
    
    # We can capture the function using its name and arity:
    &<=/2
    

Az Elixirben a névtelen függvények closure-ök. Hozzáférnek mindazokhoz a változókhoz, amelyek a függvény definiálásakor scope-ban vannak. Azok a változók, amelyeknek egy névtelen függvényen belül adunk értéket, azon kívül nem érhetők el:

y = 2

square = fn ->
  x = 3
  x * y
end

square.()
# => 6

x
# => ** (CompileError): undefined function x/0
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg

Tanuld meg a(z) Névtelen függvények fogalmat

A gyakorlás zárolva

Oldj fel még 1 feladatot, hogy gyakorolhasd a(z) Névtelen függvények fogalmat