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

19.3 long識別子式 ⟨longVid⟩

式として現れたlong識別子⟨longVid⟩の型と値は,現在の環境 の中で,その⟨longVid⟩が束縛された型と値である.

⟨longVid⟩は,変数識別子⟨vid⟩にストラクチャ識別子 ⟨strId⟩の並びがプレフィックスされた ⟨strId1⟩. ⋯.⟨strIdn⟩. ⟨vid⟩の形の式である. 各⟨strIdi⟩は,第21章で定義す る静的スコープ規則によって,ネストしたストラクチャ宣言に対応する. ストラクチャ宣言は,第16章で定義されるよ うに,現在の環境にロング識別子の束縛の集合追加する効果を持つ. さらに,⟨strIdi-1⟩が生成するロング識別子の束縛の集 合は,⟨strIdi⟩が生成するロング識別子の束縛の集合にストラクチャ 名⟨strId⟩を付加して得られるロング識別子の束縛の集合を含む.

従って,⟨longVid⟩の型と値は,⟨strIdn⟩に対応するストラ クチャの中で⟨vid⟩に束縛された型と値と同じである. nがゼロの場合は,トップレベルで⟨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