By George Z. August 9, 2021
函数组合(Function Composition)
函数组合是将一个函数的输出用作另一个函数的输入的过程。 如果我们学习组合背后的数学会更好。 在数学中,合成用 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() 函数的输入并返回输出:“这是一个偶数”。