1

ocamldoc警告が表示されます:

警告: 要素 MyModule.VariantName が見つかりません

{!MyModule.VariantName}ドキュメントのコメントで使用する場合。


ocamldocドクター曰く_

この章では、要素という単語を使用して、OCaml ソース ファイルの次の部分のいずれかを参照します: 型宣言、値、モジュール、例外、モジュール型、型コンストラクター、レコード フィールド、クラス、クラス型、クラス メソッド、クラス値、またはクラス継承句。

後でテキストのフォーマットを説明するとき:

string{! string }  という名前の要素への参照を挿入します。stringは、完全修飾要素名である必要があります (例: ) 。参照される要素の種類は、次の構文を使用して強制できます (さまざまな要素が同じ修飾名を持つ場合に役立ちます) 。Foo.Bar.t{! kind : string }modulemodtypeclassclasstypevaltypeexceptionattributemethodsection

を使用して型コンストラクターを参照できます{! string }か?

要素の種類の最初のグループは、要素の種類の 2 番目のグループにどのように関連していますか?

4

1 に答える 1

3

実装を見ると、バリアント コンストラクターを参照できるように見えますが、かなり奇妙な構文を使用しています。{!typename.constrname}別のモジュールから、構文 or を使用する必要があります{!Modulename.typename.constrname}。以下のコード例を使用すると、たとえば次のようになります{!mylist.Cons}。これによりハイパーリンクが生成されますが、残念ながら、テキストはそのままでtypename.constrname、コンストラクター名自体を参照するだけではありません。

(また、前述の識別子がどの構文カテゴリに属しているかを ocamldoc に伝える「明示的な」方法があることも学びました。あいまいな場合に役立つと思います。したがって、またはのいずれ{!mylist}{!type:mylist}を使用して型コンストラクタを示すことができるのと同じように、次を使用できます。バリアント コンストラクターを示すには、{!mylist.Nil}またはのいずれかを使用します)。{!const:mylist.Nil}

語彙上の注意: 型宣言で

type 'a mylist =
| Nil
| Cons of 'a * 'a mylist

名前NilConsは「型コンストラクター」とは呼ばれず、「コンストラクター」または「バリアントコンストラクター」のみと呼ばれます。この例では、型コンストラクターは、値レベルではなく型に存在するパラメーター化された型 (または、定数型コンストラクターの場合はパラメーター化されていない型) の名前ですmylist

于 2013-05-24T21:13:07.960 に答える