プログラミング言語SML#解説 3.7.1版
19.3 long識別子式 longVid
式として現れたlong識別子longVidの型と値は,現在の環境 の中で,そのlongVidが束縛された型と値である.
longVidは,変数識別子vidにストラクチャ識別子 strIdの並びがプレフィックスされた strId. .strId. vidの形の式である. 各strIdは,第21章で定義す る静的スコープ規則によって,ネストしたストラクチャ宣言に対応する. ストラクチャ宣言は,第16章で定義されるよ うに,現在の環境にロング識別子の束縛の集合追加する効果を持つ. さらに,strIdが生成するロング識別子の束縛の集 合は,strIdが生成するロング識別子の束縛の集合にストラクチャ 名strIdを付加して得られるロング識別子の束縛の集合を含む.
従って,longVidの型と値は,strIdに対応するストラ クチャの中でvidに束縛された型と値と同じである. がゼロの場合は,トップレベルでvidに束縛された型と値である. 簡単な例を以下に示す.
# structure A = struct val x = 99 end;
structure A =
struct
val x = 99 : int
end
# structure B = struct structure C = A end;
structure B =
struct
structure C =
struct
val x = 99 : int
end
end
# B.C.x;
val it = 99 : int