函數組合是將一個函數的輸出用作另一個函數的輸入的過程。在數學中,合成用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()
函數的輸入並返回輸出:"This is an even Number"
。
上一篇:
Haskell其他函數
下一篇:
Haskell模組