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