Tracks
/
Elixir
Elixir
/
Lehrplan
/
Anonyme Funktionen
An

Anonyme Funktionen in Elixir

4 Übungen

Über Anonyme Funktionen

Anonyme Funktionen werden in Elixir häufig verwendet, sowohl allein als auch als Rückgabewerte und als Argumente in Funktionen höherer Ordnung wie Enum.map/2:

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

Funktionen sind in Elixir Bürger erster Klasse:

  • Benannte und anonyme Funktionen können Variablen zugewiesen werden.
  • Benannte und anonyme Funktionen können wie Daten herumgereicht werden, als Argumente und als Rückgabewerte.
  • Anonyme Funktionen können dynamisch erstellt werden.

Anonyme Funktionen werden mit dem Schlüsselwort fn erstellt und mit einem Punkt (.) aufgerufen:

function_variable = fn n -> n + 1 end

function_variable.(1)
# => 2

Anonyme Funktionen können auch mit der Capture-Kurzschreibweise & erstellt werden.

  • Das & am Anfang kennzeichnet den Beginn des Capture-Ausdrucks.

  • &1, &2 und so weiter verweisen auf die Positionsargumente der anonymen Funktion.

    # Instead of:
    fn x, y -> abs(x) + abs(y) end
    
    # We can write:
    &(abs(&1) + abs(&2))
    
  • Mit dem &-Capture-Operator kannst du auch eine bestehende benannte Funktion capturen:

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

Anonyme Funktionen sind in Elixir Closures. Sie können auf Variablen zugreifen, die sich im Gültigkeitsbereich befinden, wenn die Funktion definiert wird. Variablen, die innerhalb einer anonymen Funktion zugewiesen werden, sind außerhalb von ihr nicht zugänglich:

y = 2

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

square.()
# => 6

x
# => ** (CompileError): undefined function x/0
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Anonyme Funktionen

Das Üben ist gesperrt

Schalte 1 weitere Übung frei, um Anonyme Funktionen zu üben