Haskell - Funktionszusammensetzung
Function Compositionist der Prozess der Verwendung der Ausgabe einer Funktion als Eingabe einer anderen Funktion. Es wird besser sein, wenn wir die Mathematik dahinter lernencomposition. In Mathematik,composition wird mit bezeichnet f{g(x)} wo g() ist eine Funktion und ihre Ausgabe wird als Eingabe einer anderen Funktion verwendet, d. h. f().
Die Funktionszusammensetzung kann mit zwei beliebigen Funktionen implementiert werden, vorausgesetzt, der Ausgabetyp einer Funktion stimmt mit dem Eingabetyp der zweiten Funktion überein. Wir verwenden den Punktoperator (.), Um die Funktionszusammensetzung in Haskell zu implementieren.
Schauen Sie sich den folgenden Beispielcode an. Hier haben wir die Funktionszusammensetzung verwendet, um zu berechnen, ob eine eingegebene Zahl gerade oder ungerade ist.
eveno :: Int -> Bool
noto :: Bool -> String
eveno x = if x `rem` 2 == 0
then True
else False
noto x = if x == True
then "This is an even Number"
else "This is an ODD number"
main = do
putStrLn "Example of Haskell Function composition"
print ((noto.eveno)(16))
Hier in der main Funktion rufen wir zwei Funktionen auf, noto und eveno, gleichzeitig. Der Compiler ruft zuerst die Funktion auf"eveno()" mit 16als Argument. Danach verwendet der Compiler die Ausgabe voneveno Methode als Eingabe von noto() Methode.
Seine Ausgabe wäre wie folgt -
Example of Haskell Function composition
"This is an even Number"
Da wir die Nummer 16 als Eingabe angeben (was eine gerade Zahl ist), wird die eveno() Funktion kehrt zurück true, die die Eingabe für die wird noto() Funktion und gibt die Ausgabe zurück: "Dies ist eine gerade Zahl".