Композиция функций — это процесс использования выхода одной функции в качестве входа другой функции. Будет лучше, если мы изучим математику за композицией . В математике композиция обозначается через 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))
Здесь, в основной функции, мы вызываем две функции, noto и eveno , одновременно. Сначала компилятор вызовет функцию eveno () с аргументом 16 . После этого компилятор будет использовать выходные данные метода eveno в качестве входных данных для метода noto () .
Его вывод будет следующим:
Example of Haskell Function composition "This is an even Number"
Поскольку мы поставляем число 16 в качестве входных данных (которое является четным числом), функция eveno () возвращает значение true , которое становится входным значением для функции noto () и возвращает вывод: «Это четное число».