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 Parametern nur einige dieser Parameter übergibt, so entstehen - passend zu der Sichtweise durch Currying - jeweils neue Funktionen. Diese Funktionen entstehen durch eine partielle 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
8.2.2.6.6
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/funktionenerzeugen/konzept_currying
dev.inf-schule.de/8.2.2.6.6
dev.inf-schule.de/@/page/13mNCJXxaGIojd8Q

Rückmeldung geben