Учебники

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

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

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

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

Live Demo

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 () и возвращает вывод: «Это четное число».