i

Partielle Funktionsanwendung

Vertiefendes Verständnis partieller Funktionsanwendung

Du hast in einem vorherigen Abschnitt bereits partielle Funktionsanwendung kennengelernt. Dabei wurde immer der letzte Parameter einer Funktion weggelassen. Dadurch entstand eine neue Funktion, die nur einen Parameter erwartet. Das Konzept der partiellen Funktionsanwendung lässt sich jedoch auf eine beliebige Zahl an weggelassen Parametern anwenden.

Wir betrachten hier die vordefinierte Funktion String.replace, mit der man in einer Zeichenkette Zeichenkombinationen durch andere ersetzen kann.

> String.replace
<function> : String -> String -> String -> String
> String.replace "a" "u" "Hand"
"Hund" : String
> String.replace "Fin" "Ti" "Finger"
"Tiger" : String

Aufgabe 1

Teste zunächst die Funktion String.replace mit verschiedenen Funktionsaufrufen. Beschreibe das Verhalten der Funktion mit Hilfe des Black-Box-Diagramms.

Black-Box-Diagramm String.replace[1]

Nur einen Übergabewert verwenden

Die Funktion String.replace wird mit nur einem Übergabewert aufgerufen. Es entsteht eine neue Funktion.

> String.replace "a"         
<function> : String -> String -> String
> (String.replace "a") "u" "Hand"
"Hund" : String
> (String.replace "a") "e" "hallo"
"hello" : String
> ersetze_a = String.replace "a"
<function> : String -> String -> String
> ersetze_a "u" "Hand"
"Hund" : String

Aufgabe 2

Erkläre in Worten, was die neu erzeugte Funktion String.replace "a" leistet. Benutze das folgende Black-Box-Diagramm.

Black-Box-Diagramm String.replace a[2]

Zwei Übergabewerte verwenden

Die Funktion String.replace wird jetzt mit zwei Übergabewerten aufgerufen. Es entsteht wiederum eine neue Funktion.

> String.replace "a" "u"
<function> : String -> String
> (String.replace "a" "u") "Hand"     
"Hund" : String
> (String.replace "a" "u") "Rahm"     
"Ruhm" : String
> ersetze_a_u = String.replace "a" "u"
<function> : String -> String
> ersetze_a_u "Hand"
"Hund" : String

Aufgabe 3

Erkläre in Worten, was die neu erzeugte Funktion String.replace "a" "u" leistet. Benutze das folgende Black-Box-Diagramm.

Black-Box-Diagramm String.replace a u[3]

Quellen

Suche

v
8.2.2.6.2.1
www.inf-schule.de/deklarativ/fp_elm/elm_programme/funktionenerzeugen/currying/lernstrecke
www.inf-schule.de/8.2.2.6.2.1
www.inf-schule.de/@/page/JzS9J9OVMo9wRqan

Rückmeldung geben