Haskell 函数组合



函数组合是指将一个函数的输出用作另一个函数的输入的过程。如果我们学习组合背后的数学知识会更好。在数学中,组合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函数中,我们同时调用两个函数notoeveno。编译器将首先使用 16 作为参数调用函数"eveno()"。此后,编译器将使用eveno方法的输出作为noto()方法的输入。

其输出如下 −

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

由于我们提供的输入数字为 16(偶数),eveno()函数返回true,该值将变为noto()函数的输入,并返回输出:“这是一个偶数”。

广告