Syntax OCaml中多态变量类型的语法
我正在查看一个OCaml文件,我怀疑它应该是一个多态变量类型(我不知道OCaml,所以可能非常奇怪): 但是,根据OCaml的语法Syntax OCaml中多态变量类型的语法,syntax,ocaml,Syntax,Ocaml,我正在查看一个OCaml文件,我怀疑它应该是一个多态变量类型(我不知道OCaml,所以可能非常奇怪): 但是,根据OCaml的语法 polymorphic-variant-type ::= [ [ | ] tag-spec { | tag-spec } ] ∣ [> [ tag-spec ] { | tag-spec } ] ∣ [< [ | ] tag-spec-full { | tag-spec-full } [ &g
polymorphic-variant-type
::= [ [ | ] tag-spec { | tag-spec } ]
∣ [> [ tag-spec ] { | tag-spec } ]
∣ [< [ | ] tag-spec-full { | tag-spec-full } [ > { `tag-name }+ ] ]
多态变体类型
::=[[|]标记规范{|标记规范}]
∣ [>[tag spec]{| tag spec}]
∣ [<[|]标记规范完整{|标记规范完整}[>{`tag name}+]
在[]
内部,如果不使用反勾号,则不能使用大写标识符。
标记规范
不能是以大写开头的任何内容
我正在查看正确的语法规则,还是该文件中有其他内容?在原始OCaml具体语法中,必须有一个反勾号。看起来您的示例使用的是OCaml语法
polymorphic-variant-type
::= [ [ | ] tag-spec { | tag-spec } ]
∣ [> [ tag-spec ] { | tag-spec } ]
∣ [< [ | ] tag-spec-full { | tag-spec-full } [ > { `tag-name }+ ] ]