Fachkonzept - anonyme Funktion
Funktionen ohne Funktionsname
Eine anonyme Funktion ist eine Funktion, bei der die Funktionsdefinition nicht an einen Namen gebunden ist.
Beispiele:
> \ x -> x+1
<function> : number -> number
> (\ x -> x+1) 2
3 : number
> \ x -> (x>0)
<function> : number -> Bool
> (\ x -> (x>0)) -1
False : Bool
> \ x y z -> ((x<y) && (y<z))
<function> : comparable -> comparable -> comparable -> Bool
> (\ x y z -> ((x<y) && (y<z))) 3 5 7
True : Bool
In Elm wird eine anonyme Funktion als Zuordnung in der Form \ ... -> ...
dargestellt. Nach dem \
-Symbol folgen die Parameter,
nach dem ->
-Symbol folgt der Funktionsausdruck.
Verwendung anonymer Funktionen
Anononyme Funktionen verwendet man, wenn der zugehörige Funktionsausdruck kurz ist und die Funktion nur einmal benutzt wird. Eine typische Anwendungssituation ist die Verwendung innhalb von Listenoperatoren.
> List.map ( \ x -> x+1 ) [1, 2, 3, 4]
[2,3,4,5] : List number
> List.filter ( \ x -> (x>0) ) [0, 1, -1, 2, -2]
[1,2] : List number
> List.foldr ( \ x y -> x+y ) 0 [1,2,3,4,5]
15 : number