プログラミング言語SML#解説 4.0.0版
19

19.2 定数式scon

定数式は,第17.2節で定義した 定数リテラル intwordrealstringchar である.

これらの中でintwordrealの各定 数は以下の表の通りオーバロードされており,使用文脈によって適当な型が選ば れる. 文脈の制約がなければ,デフォルトの型を持つ.

クラス 取りうる型集合 デフォ ルトの型
int intint32int64int8int16intInf int
word wordword32word64word8word16 word
real realreal32 real

string及びcharリテラルは,それぞれstring及び char型を持つ,

また,これら定数リテラルは,型に応じてさだまるアーキテクチャ上の自然な動的な値 を生成する. 実行時の値表現の詳細は第29章で定義する.

以下は,定数式の評価の例である.

# val one = 1;
val one = 1 : int
# val oneIntInf = 1 : intInf;
val oneIntInf = 1 : intInf
# fun fact 0 = oneIntInf
>   | fact n = n * fact (n - 1);
val fact = fn : intInf -> intInf
# fact 30;
val it = 265252859812191058636308480000000 : intInf
# 0w100;
val it = 0wx64 : word
# "smlsharp";
val it = "smlsharp" : string
# #"S";
val it = #"S" : char
# 3.141592;
val it = 3.141592 : real