※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

  • 高階関数 first order function
関数を返す関数

いよいよ、関数型言語の佳境。

text p.56-60

f m n = m + n
と定義し、さらに、
g = f mと定義する。
すると、
g 1 = 3+ 1
g 2 = 3+2
となる。

  • 関数式 text p.61
名前のない関数、本来は、これが関数の定義である。

(fn x=>x+1)3*10; (->40)

val plusone = fn x=>x+1;
として、名前をつけ、
plusone 3 *10を実行してみよ。同じ結果が得られる。

summationの例をパターンマッチングで書くと、
fun summation f 1 = f 1
 | summation f n = f n + summation f (n-1);

1+2+3+4+...+10
1^2 + 2^2 +3^2 + +10^2
1^3 + 2^3 + 3^3 + 10^3
をsummationと関数式を使って、それぞれ書いてみると、

summation (fn n=>n) 10
summation (fn n=> n*n) 10
summation (fn n=> n*n*n) 10
とかける。
1回しか使わない場合、いちいち関数に名前をつけずにすむので重宝する。

名前:
コメント: