プログラミング言語SML#解説 3.7.1版
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