请在 Stream 文档中解释这个例子,什么是 [< >] 语法?

Please explain this example in the Stream docs, what is [< >] syntax?

https://ocaml.org/api/Stream.html

val from : (int -> 'a option) -> 'a t

Stream.from f returns a stream built from the function f. To create a new stream element, the function f is called with the current stream count. The user function f must return either Some <value> for a value or None to specify the end of the stream.

Do note that the indices passed to f may not start at 0 in the general case. For example, [< '0; '1; Stream.from f >] would call f the first time with count 2.

这个例子有两点让我感到困惑。

1.

我没能用谷歌搜索 [< ... >] 语法的含义。我找到的最接近的是:https://ocaml.org/manual/lex.html#sss:keywords,它只是说那些字符序列是关键字

[< ... ] 似乎在打印但未定义多态变体时使用:https://ocaml.org/manual/polyvariant.html

如果我粘贴类似 [< '0; '1; >] 的内容,我会收到语法错误。

所以我目前对这个例子想要展示的内容感到非常困惑。

2.

这个例子说 [< '0; '1; Stream.from f >] 会第一次调用 f 计数 2

我只是想知道...为什么?如何?我可以看到 2 紧随 '0'1,但这些值如何影响 f 的起始值? (为什么它们的前缀是 '?)

已弃用的 Stream 模块被构建为与 camlp{4,5} 句法扩展一起使用,该扩展增加了对 [< ...>] 的支持。有关更多文档,请参阅 https://camlp5.github.io/doc/html/parsers.html

但是,如果您不维护遗留代码,您可能希望完全避免使用 Stream 模块,而改用 Seq 模块。特别是,Stream 不会成为从 OCaml 5.0 开始的标准库的一部分。