Haskell - композиция функций

Function Compositionэто процесс использования выходных данных одной функции в качестве входных данных для другой функции. Будет лучше, если мы выучим математику позадиcomposition. В математикеcomposition обозначается f{g(x)} где g() является функцией, и ее выход используется как вход другой функции, то есть f().

Композиция функций может быть реализована с использованием любых двух функций при условии, что тип вывода одной функции совпадает с типом ввода второй функции. Мы используем оператор точки (.) Для реализации композиции функций в Haskell.

Взгляните на следующий пример кода. Здесь мы использовали композицию функций, чтобы вычислить, является ли входное число четным или нечетным.

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))

Здесь, в main функция, мы вызываем две функции, noto и eveno, одновременно. Компилятор сначала вызовет функцию"eveno()" с участием 16как аргумент. После этого компилятор будет использовать выводeveno метод как вход noto() метод.

Его вывод будет следующим:

Example of Haskell Function composition                
"This is an even Number"

Поскольку мы вводим число 16 (четное число), eveno() функция возвращает true, который становится входом для noto() функция и возвращает результат: «Это четное число».