https://ocaml.org/api/Stream.html
val from : (int -> 'a option) -> 'a t
Stream.from f返回一个从函数f构建的流。若要创建新的流元素,将使用当前流计数调用函数f。用户函数f必须返回值的Some <value>或指定流结束的None。
请注意,在一般情况下,传递给f的索引可能不会从0开始。例如,[< '0; '1; Stream.from f >]将第一次使用count 2调用f。
关于这个例子,有两件事让我困惑。
1.
我在谷歌上搜索[< ... >]语法的含义时运气不佳。我发现的最接近的是:https://ocaml.org/manual/lex.html#sss:keywords,它只是说那些字符序列是关键字
[< ... ]似乎用于打印多态变体,而不是定义多态变体:https://ocaml.org/manual/polyvariant.html
如果粘贴类似于[< '0; '1; >]的内容,就会出现语法错误。
所以,我现在很困惑这个例子的意思是什么。
2.
这个例子说,[< '0; '1; Stream.from f >]第一次用2计数调用f
我只是想知道..。为什么?多么?我可以看到2继承了'0和'1,但是这些值如何影响f的起始值呢?(为什么它们的前缀是'?)
https://stackoverflow.com/questions/70883028
复制相似问题