i

Fachkonzept - Funktionskomposition

Funktionen hintereinander schalten

Mit dem Begriff Funktionskomposition beschreibt man das Hintereinanderschalten bzw. Verketten von Funktionen.

Im folgenden REPL-Dialog werden die Funktionen f und g hintereinandergeschaltet.

> f x = x + 1
<function> : number -> number
> g x = 2 * x
<function> : number -> number
> h x = g (f x)
<function> : number -> number
> h 3
8 : number

Das Hintereinanderschalten von Funktionen lässt sich mit den Kompositionsoperatoren >> und << direkt umsetzen.

> f x = x + 1
<function> : number -> number
> g x = 2 * x
<function> : number -> number
> f >> g
<function> : number -> number
> (f >> g) 3
8 : number
> g << f
<function> : number -> number
> (g << f) 3
8 : number

Denselben Effekt erreicht man mit den Pipe-Operatoren |> und <|. Mit diesen Operatoren legt man ebenfalls das Weiterreichen von Rückgabedaten einer Vorgängerfunktion als Übergabedaten an eine Nachfolgerfunktion fest.

> ( \ x -> x |> f |> g ) 
<function> : number -> number
> ( \ x -> x |> f |> g ) 3
8 : number
> ( \ x -> g <| f <| x )        
<function> : number -> number
> ( \ x -> g <| f <| x ) 3
8 : number

Nutzen von Funktionskomposition

Funktionskomposition ist essentiell in der funktionalen Programmierung. Automatisierungsprobleme werden in der Regel in kleinere Probleme zerlegt. Jedes Teilproblem wird mit Hilfe einer Funktion gelöst. Funktionskomposition wird benutzt, um die Teillösungen zu einer Gesamtlösung zusammenzubauen.

Funktionskomposition kann man auf unterschiedliche Weise implementieren: durch eine Verschachtelung von Funktionsaufrufen oder mit Hilfe von Kompositionsoperatoren. Die Operatoren helfen oft, die Komposition transparenter zu gestalten und die benutzten Ausdrücke lesbarer zu machen.

Suche

v
8.2.2.6.7
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/funktionenerzeugen/konzept_komposition
dev.inf-schule.de/8.2.2.6.7
dev.inf-schule.de/@/page/29hxjA0xY8UpXieW

Rückmeldung geben