首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >引用ocamldoc中的类型构造函数

引用ocamldoc中的类型构造函数
EN

Stack Overflow用户
提问于 2013-05-24 20:48:38
回答 1查看 219关注 0票数 1

我收到了ocamldoc警告:

警告:找不到元素MyModule.VariantName

在文档注释中使用{!MyModule.VariantName}时。

doc

在本章中,我们使用word元素引用OCaml源文件的以下任何部分:类型声明、值、模块、异常、模块类型、类型构造函数、记录字段、类、类类型、类方法、类值或类继承子句。

稍后在解释文本格式时:

{! string }插入对名为string的元素的引用。字符串必须是一个完全限定的元素名,例如Foo.Bar.t。引用元素的类型可以强制使用以下语法(当各种元素具有相同的限定名时有用):{! kind : string },其中类可以是modulemodtypeclassclasstypevaltypeexceptionattributemethodsection

我可以使用{! string }引用类型构造函数吗?

第一组元素和第二组元素有什么关系?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-24 21:13:07

在查看了实现之后,似乎可以引用一个变体构造函数,但是使用一种非常奇怪的语法:您必须使用{!typename.constrname}语法,或者使用来自另一个模块的{!Modulename.typename.constrname}。使用下面的代码示例,这将通过{!mylist.Cons}来实现。这将生成一个超链接,但不幸的是,文本仍然是typename.constrname,而不仅仅是引用构造函数名称本身。

(我还了解到,有一种“显式”方法可以告诉ocamldoc所提到的标识符属于哪个语法类别,在某些不明确的情况下,我应该提供帮助。因此,就像您可以使用{!mylist}{!type:mylist}来表示类型构造函数一样,您也可以使用{!mylist.Nil}{!const:mylist.Nil}来表示变量构造函数。)

注意:在类型声明中

代码语言:javascript
复制
type 'a mylist =
| Nil
| Cons of 'a * 'a mylist

名称NilCons不是称为“类型构造函数”,而是“构造函数”或“变体构造函数”。在本例中,类型构造函数是驻留在类型而不是值级别( mylist )上的参数化类型(或常量类型构造函数的非参数化类型)的名称。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16743444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档