Haskell - Composición de funciones

Function Compositiones el proceso de utilizar la salida de una función como entrada de otra función. Será mejor si aprendemos las matemáticas detráscomposition. En matemáticas,composition se denota por f{g(x)} dónde g() es una función y su salida se utiliza como entrada de otra función, es decir, f().

La composición de funciones se puede implementar usando dos funciones cualesquiera, siempre que el tipo de salida de una función coincida con el tipo de entrada de la segunda función. Usamos el operador de punto (.) Para implementar la composición de funciones en Haskell.

Eche un vistazo al siguiente código de ejemplo. Aquí, hemos utilizado la composición de funciones para calcular si un número de entrada es par o impar.

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

Aquí, en el main función, estamos llamando a dos funciones, noto y eveno, simultaneamente. El compilador llamará primero a la función"eveno()" con 16como argumento. A partir de entonces, el compilador utilizará la salida deleveno método como una entrada de noto() método.

Su salida sería la siguiente:

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

Dado que estamos proporcionando el número 16 como entrada (que es un número par), el eveno() devuelve la función true, que se convierte en la entrada para noto() función y devuelve la salida: "Este es un número par".