6.3 Namesこのページは最後に更新されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。 last mod. 2008-11-01 (土) 10:53:01
識別子はオブジェクトの名前で、その名前でオブジェクトにアクセスできます。
Naming objectsvalue-name ::= lowercase-ident | ( operator-name ) operator-name ::= prefix-symbol | infix-op infix-op ::= infix-symbol | * | = | or | & | := | mod | land | lor | lxor | lsl | lsr | asr constr-name ::= capitalized-ident label-name ::= lowercase-ident tag-name ::= capitalized-ident typeconstr-name ::= lowercase-ident field-name ::= lowercase-ident module-name ::= capitalized-ident modtype-name ::= ident class-name ::= lowercase-ident inst-var-name ::= lowercase-ident method-name ::= lowercase-ident As shown above, prefix and infix symbols as well as some keywords can be used as value names, provided they are written between parentheses. The capitalization rules are summarized in the table below. 以上のように、前置シンボルや中置シンボル、いくつかのキーワードは、括弧でくくることで値の名前として使えます。 大文字小文字で区別する規則は要約すると以下のようになります。
バリアントタグに関する注意 現在の実装では大文字だけでなく小文字のバリアントタグも受理しますが、将来の OCaml バージョンとの移植性、互換性を考えると小文字は避けておいた方が無難です。 Referring to named objectsvalue-path ::= value-name | module-path . value-name constr ::= constr-name | module-path . constr-name typeconstr ::= typeconstr-name | extended-module-path . typeconstr-name field ::= field-name | module-path . field-name module-path ::= module-name | module-path . module-name extended-module-path ::= module-name | extended-module-path . module-name | extended-module-path ( extended-module-path ) modtype-path ::= modtype-name | extended-module-path . modtype-name class-path ::= class-name | module-path . class-name 名前付きのオブジェクトはその名前で参照する (名前のための通常の静的なスコープルールによって) か、アクセスパス prefix . name によって参照できます。ここで prefixはモジュールを name は そのモジュールで定義されたオブジェクトを表します。 パスの最初の部分prefixは単なるモジュール名か アクセスパス name_1 . name_2 ..., となり、後者では定義しているモジュールはそれ自身他のモジュールの中にネストされていることになります。 型コンストラクタやモジュール型を参照する場合、 prefixは 単純なファンクタ適用を含むことができます(上の構文クラスextended-module-pathのように)。この場合、定義されているモジュールはファンクタ適用の結果です。 ラベル名、タグ名、メソッド名とインスタンス変数名は修飾される必要はありません: 前3つはグローバルなラベルですし、後者はクラス内でローカルです。 |