Haskell-function-composition

提供:Dev Guides
移動先:案内検索

Haskell-関数の構成

関数構成*は、ある関数の出力を別の関数の入力として使用するプロセスです。 *組成*の背後にある数学を学べばもっと良いでしょう。 数学では、 *compositionf \ {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 関数では、 notoeveno の2つの関数を同時に呼び出しています。 コンパイラーは、最初に 16 を引数として関数 "eveno()" を呼び出します。 その後、コンパイラは eveno メソッドの出力を* noto()*メソッドの入力として使用します。

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

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

入力として16(偶数)を指定しているため、* eveno()関数は *true を返し、これは* noto()*関数の入力になり、出力を返します。「これは偶数」。