Iterierte Funktionsanwendung
Die Signatur einer Funktion deuten
Die Signatur der Funktion String.replace
kann man sich in der REPL anzeigen lassen.
> String.replace
<function> : String -> String -> String -> String
Bisher haben wir diese Signatur so gedeutet: Die Funktion String.replace
erwartet drei Übergabewerte von Typ String
und liefert einen Wert vom Typ String
zurück. Unklar war, warum die Übergabewerte auch mit dem Symbol ->
verknüpft wurden.
Die Signatur der Funktion String.replace
könnte man auch so schreiben:
> String.replace
<function> : String -> (String -> (String -> String))
Die Signatur können wir daher auch so deuten: Der Funktion String.replace
werden drei Werte von Typ String
Schritt für Schritt übergeben. In jedem Schritt wird eine (gedachte) neue Funktion aktiviert.
Aufgabe 1
Deute entsprechend die folgenden Signaturen.
> List.append
<function> : List a -> List a -> List a
> List.map
<function> : (a -> b) -> List a -> List b
Quellen
- [1]: Black-Box-Diagramm String.replace - Urheber: KB - Lizenz: inf-schule.de
- [2]: Black-Box-Diagramm String.replace - Urheber: KB - Lizenz: inf-schule.de