Haskell-function-composition
提供:Dev Guides
Haskell-関数の構成
関数構成*は、ある関数の出力を別の関数の入力として使用するプロセスです。 *組成*の背後にある数学を学べばもっと良いでしょう。 数学では、 *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 関数では、 noto と eveno の2つの関数を同時に呼び出しています。 コンパイラーは、最初に 16 を引数として関数 "eveno()" を呼び出します。 その後、コンパイラは eveno メソッドの出力を* noto()*メソッドの入力として使用します。
その出力は次のようになります-
Example of Haskell Function composition
"This is an even Number"
入力として16(偶数)を指定しているため、* eveno()関数は *true を返し、これは* noto()*関数の入力になり、出力を返します。「これは偶数」。