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

19.2 定数式⟨scon⟩

定数式は,第17.2節で定義した 定数リテラル ⟨int⟩, ⟨word⟩, ⟨real⟩, ⟨string⟩, ⟨char⟩ である.

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

クラス 取りうる型集合 デフォ ルトの型
⟨int⟩ int,int32,int64,int8,int16,intInf int
⟨word⟩ word,word32,word64,word8,word16 word
⟨real⟩ real,real32 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