§ 7.3. 式の組み合わせによる計算の表現
前節の階乗の計算では,引数が0の場合は1を返し,それ以 外の一般のnの場合は,n * fact (n - 1)を返すようにプログラム されていました. このように,関数が返すべき値は,値を表す式で表現されます. 最初の場合の1も,値そのものではなく,ゼロという値を表す式 とみなします. n * fact (n - 1)は,変数nと関数を含む式です. 一般にML言語の大原則は,
MLのプログラミングは,必要な値をもつ式を定義することを通じて行う
というものです.
式は以下の要素を組み合わせて構成されます.
-
0などの定数式
-
関数の引数やすでに定義されている値を表す変数
-
関数呼び出し
-
関数を含む種々のデータ構造の構成
1から3までの組み合わせは,高校などで慣れ親しんだ算術式と同じ構
造を持っています.
例えば,
この式は,MLで直接以下のようにプログラムできます.
val Sn = (n * (n + 1) * (2*n + 1)) div 6
*とdivはそれぞれ自然数の乗算と除算を表します.
この式は
# val n = 10;
val n = 10 : int
val Sn = (n * (n + 1) * (2*n + 1)) div 6;
val Sn = 385 : int