i

Fachkonzept - Currying

Eine neue Sichtweise

Eine Funktion mit mehreren Übergabeparametern kann man in eine Folge von Funktionen mit nur einem Übergabeparameter umwandeln. Man nennt diesen Vorgang Currying.

> String.replace "a" "u" "Hand"
"Hund" : String
> (String.replace "a" "u") "Hand"
"Hund" : String
> ((String.replace "a") "u") "Hand"
"Hund" : String

Das Black-Box-Diagramm verdeutlicht diese Sichtweise.

Black-Box-Diagramm String.replace[1]

Partielle Funktionsanwendung

Wenn man bei einer Funktion mit mehreren Übergabeparametern nur an einige dieser Parameter Daten übergibt, so entstehen - passend zu der Sichtweise durch Currying - jeweils neue Funktionen. Diese Funktionen entstehen durch eine parielle Funktionsanwendung bei der Ausgangsfunktion.

> String.replace
<function> : String -> String -> String -> String
> String.replace "a"
<function> : String -> String -> String
> String.replace "a" "u"
<function> : String -> String

Nutzen partieller Funktionsanwendung

Partielle Funktionsanwendung wird häufig benutzt, wenn man eine Funktion mit mehreren Parametern nur in einer ganz speziellen Weise verwenden möchte. Hier ein Beispiel:

> List.map (String.replace "a" "u") ["Hand","Rahm","Rate"]
["Hund","Ruhm","Rute"] : List String

Quellen

Suche

v
110.2.12.2.1.4
inf-schule.de/fp_elm_alteversion/elm_programme/funktionenerzeugen/currying/lernstrecke/zusammenfassung
inf-schule.de/110.2.12.2.1.4
inf-schule.de/@/page/JL9EyYqb6LBLnrvy

Rückmeldung geben