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()函數的輸入並返回輸出:"This is an even Number"


上一篇: Haskell其他函數 下一篇: Haskell模組