Haskell - Kompozycja funkcji
Function Compositionjest procesem używania wyniku jednej funkcji jako danych wejściowych innej funkcji. Będzie lepiej, jeśli nauczymy się matematyki stojącej za niącomposition. W matematyce,composition jest oznaczony przez f{g(x)} gdzie g() jest funkcją, a jej wyjście jest używane jako dane wejściowe innej funkcji, to znaczy f().
Kompozycję funkcji można zaimplementować przy użyciu dowolnych dwóch funkcji, pod warunkiem, że typ wyjścia jednej funkcji jest zgodny z typem wejścia drugiej funkcji. Używamy operatora kropki (.) Do implementacji kompozycji funkcji w Haskell.
Spójrz na poniższy przykładowy kod. Tutaj użyliśmy kompozycji funkcji do obliczenia, czy liczba wejściowa jest parzysta czy nieparzysta.
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))
Tutaj, w main funkcji, wywołujemy dwie funkcje, noto i eveno, równocześnie. Kompilator najpierw wywoła funkcję"eveno()" z 16jako argument. Następnie kompilator użyje danych wyjściowych plikueveno metoda jako dane wejściowe noto() metoda.
Jego wynik byłby następujący -
Example of Haskell Function composition
"This is an even Number"
Ponieważ podajemy liczbę 16 jako dane wejściowe (która jest liczbą parzystą), funkcja eveno() funkcja zwraca true, który staje się danymi wejściowymi dla noto() funkcji i zwraca wynik: „To jest liczba parzysta”.