Haskell-関数の合成

Function Compositionある関数の出力を別の関数の入力として使用するプロセスです。背後にある数学を学べばもっと良いでしょうcomposition。数学では、composition で示されます f{g(x)} どこ g() は関数であり、その出力は別の関数の入力として使用されます。 f()

関数の合成は、1つの関数の出力タイプが2番目の関数の入力タイプと一致する場合、任意の2つの関数を使用して実装できます。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 関数、2つの関数を呼び出しています。 noto そして eveno、同時に。コンパイラは最初に関数を呼び出します"eveno()"16引数として。その後、コンパイラはの出力を使用しますeveno の入力としてのメソッド noto() 方法。

その出力は次のようになります-

Example of Haskell Function composition                
"This is an even Number"

入力として16という数字(偶数)を提供しているので、 eveno() 関数は戻ります true、これはの入力になります noto() 関数と出力を返します:「これは偶数です」。