
- Haskell 教程
- Haskell 主頁
- Haskell 概覽
- Haskell 環境設定
- Haskell 基本資料模型
- Haskell 基本運算子
- Haskell 決策制定
- Haskell 型別和型別類
- Haskell 函式
- Haskell 函式深入解析
- Haskell 函式組合
- Haskell 模組
- Haskell 輸入和輸出
- Haskell 函子
- Haskell 單子
- Haskell 拉鍊
- Haskell 有用資源
- Haskell 快速指南
- Haskell 有用資源
- Haskell 討論
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()函式的輸入,並返回輸出:“這是一個偶數”。
廣告