Control.Category モジュールを用いて多価函数1 の合成について考えてみます. 余力があればより有用な Control.Arrow モジュールについて見ていきたいです. GHC, GHCi を使う環境を想定しています. 次の記事 → 綱渡りと Category (と,Kleisli) 多価函数 多価函数とは 与えられた数 x に対して,その平方根を返す函数について考えてみます. 例えば 4 の平方根は 2 と -2, 9 の平方根は 3 と -3, 17 の平方根は √17 と -√17 のように平方根は (0 等を除いて) 二つ存在することがわかります. このように入力に対して複数の出力を持つ "函数" を多価函数と呼びます. 数学においては冪根,複素数の対数函数,周期函数の逆函数などさまざまな多価函数が存在します. 多価函数は函数ではない? 函数は一般的に "1 つの入力