Anonyme Funktionen
Funktionen ohne Namen definieren
Die folgenden REPL-Dialoge zeigen verschiedene Möglichkeiten, eine Funktion zu definieren, die eine Zahl um 1 erhöht.
Version 1: Standarddefinition mit Funktionsname
> plus1 x = x+1
<function> : number -> number
> plus1 2
3 : number
Version 2: Funktionsname verknüpft mit einer Zuordnung
> plus1 = \ x -> x+1
<function> : number -> number
> plus1 2
3 : number
Version 3: Zuordnung als anonyme Funktion
> \ x -> x+1
<function> : number -> number
> (\ x -> x+1) 2
3 : number
Beachte: Eine Zuordnung wird in der Form \ ... -> ...
dargestellt. Nach dem \
-Symbol folgen die Parameter,
nach dem ->
-Symbol folgt der Funktionsausdruck.
Aufgabe 1
Stelle die folgenden Funktionen als anonyme Funktionen dar und teste sie mit geeigneten Funktionsaufrufen.
> durch2 5
2.5 : Float
> mit3 l = 3 :: l
<function> : List number -> List number
> mit3 [4, 2, 8]
[3,4,2,8] : List number
> punkt x y = (x,y)
<function> : a -> b -> ( a, b )
> punkt 2 -1
(2,-1) : ( number, number1 )
> ohneErstes s = String.dropLeft 1 s
<function> : String -> String
> ohneErstes "Haus"
"aus" : String