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函数中,我们同时调用两个函数noto和Eveno。编译器将首先以16作为参数调用函数“eveno()” 。此后,编译器将使用eveno方法的输出作为noto()方法的输入。
其输出如下 -
Example of Haskell Function composition "This is an even Number"
由于我们提供数字 16 作为输入(这是一个偶数),eveno()函数返回true ,它成为noto()函数的输入并返回输出:“这是一个偶数”。