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() функция и возвращает результат: «Это четное число».