プログラミング言語SML#解説 4.0.0版
7.3 式の組み合わせによる計算の表現
前節の階乗の計算では,引数が0の場合は1を返し,それ以 外の一般のnの場合は,n * fact (n - 1)を返すようにプログラム されていました. このように,関数が返すべき値は,値を表す式で表現されます. 最初の場合の1も,値そのものではなく,ゼロという値を表す式 とみなします. n * fact (n - 1)は,変数nと関数を含む式です. 一般にML言語の大原則は,
MLのプログラミングは,必要な値をもつ式を定義することを通じて行う
というものです.
式は以下の要素を組み合わせて構成されます.
-
1.
0などの定数式
-
2.
関数の引数やすでに定義されている値を表す変数
-
3.
関数呼び出し
-
4.
関数を含む種々のデータ構造の構成
1から3までの組み合わせは,高校などで慣れ親しんだ算術式と同じ構 造を持っています. 例えば,からまでの自然数の2乗の和 は以下の公式で求められます.
この式は,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