Haskell - Composizione della funzione

Function Compositionè il processo di utilizzo dell'output di una funzione come input di un'altra funzione. Sarà meglio se impariamo la matematica che c'è dietrocomposition. In matematica,composition è indicato da f{g(x)} dove g() è una funzione e il suo output viene utilizzato come input di un'altra funzione, ovvero f().

La composizione della funzione può essere implementata utilizzando due funzioni qualsiasi, a condizione che il tipo di output di una funzione corrisponda al tipo di input della seconda funzione. Usiamo l'operatore punto (.) Per implementare la composizione di funzioni in Haskell.

Dai un'occhiata al seguente codice di esempio. Qui, abbiamo usato la composizione della funzione per calcolare se un numero di input è pari o dispari.

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

Qui, nel main funzione, stiamo chiamando due funzioni, noto e eveno, contemporaneamente. Il compilatore chiamerà prima la funzione"eveno()" con 16come argomento. Successivamente, il compilatore utilizzerà l'output dieveno metodo come input di noto() metodo.

Il suo output sarebbe il seguente:

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

Dato che stiamo fornendo il numero 16 come input (che è un numero pari), il eveno() restituisce la funzione true, che diventa l'input per noto() e restituisce l'output: "Questo è un numero pari".