関数合成とカリー化
こちらでは関数合成について解説していきます
関数合成とは?
関数合成は複数の関数を合体させて一つの関数として処理できるようになります 例えば以下の関数があったとしましょう
f(x)は引数xに2を加算する関数、g(y)は引数yを2倍する関数です これを合体させ「引数rを2倍したのちに+2する関数」k(r)を数式で表現すると次のようになります g(r)の計算をし、それを引数にf(x)の計算を行っています
これを元にF#における関数合成を見ていきましょう
合成演算子
合成演算子は2つ以上の関数を合体させ関数を返します 左から順に関数1,関数2...と順番に処理されていきます
パイプライン演算子
パイプライン演算子は関数と値を受け取り、値を返します 合成演算子同様、左から順に処理されていきます 値や戻り値が自動で次の関数に渡されるため、主に関数を連続で呼び出すときに用いられます
高階関数
実装例
さきほどのf(g(r))を実装してみましょう
カリー化について
簡単に言うと ・最初の引数がカリー化関数の引数 ・残りの引数が戻り値に使用 ということです
引数a,b,cを受け取る関数func(a,b,c)をカリー化すると ・関数の引数:a ・戻り値に使用する引数:b,c というように分解できます
最終更新