Ch.7 MLプログラミング入門

§ 7.6. 複雑な式と関数

定数,変数,組込み関数の組み合わせだけでは,もちろん,複雑な問題 を解くプログラムを記述することはできません. MLプログラミングの原則は式を書くことによってプログラムすることで すが,その中で重要な役割を果たす式が関数を表す式です.

関数は,すでに第7.2節で学んだように,

fun funName param = expr

の構文で定義されます. この宣言以降,変数funNameは,引数paramを受け取り,式 exprの値を計算する関数として使用可能となります. 例えば1からnまでの自然数の2乗の和の公式は,nを受け取る関 数とみなせます.

S(n)=n(n+1)(2n+1)6

この定義はfun構文により直接MLのプログラムとして定義できます.

# fun S n = (n * (n + 1) * (2 * n + 1)) div 6;
val S = fn : int -> int

この関数は,以下のように使用できます.

# S 10;
val it = 385 : int
# S 20;
val it = 2870 : int