OCAML中的流是真正使用的



看不同的OCAML项目,我看不到使用的语言中的内置流。即使在最近的现实世界中,也根本没有提及流,这很奇怪。

这样做的原因是什么?是因为LWT或核心取代它们吗?

我想我在此错误报告中几乎回答了这个问题。

流在CAMLP4语法支持的情况下非常好,没有它,它们几乎无法使用。因此,这是很久以前的(尽管从理论上讲仍然是可用的)。根据Drup的参考,他们甚至会在不久的将来(今年)从核心语言中删除,并且大概将转移到独立的图书馆。

这并不是说,流作为数据结构有问题。这仍然是许多OCAML项目中使用的非常有价值的技术,它们只是使用实施此功能的不同库。有核心Sequence,电池Enum,Simon Cruanes的gensequence软件包,Joseph Abrahamson的fstream软件包,仅举几例。

流可以用于OCAML中的'懒惰评估',尤其是因为OCAML是一种渴望的语言,因此肯定有有用的情况是懒惰的评估(例如在Haskell中)。

引用溪流康奈尔的讲座,

流在现实生活中实际上很有用。一些应用程序:

  • 编译器从文本读取源文件
  • 网络插座
  • 音频和视频信号处理
  • 语音识别
  • 使用Convergent Series
  • 近似于方程的解决方案

提供的参考文献还使用流来计算素质懒惰,这与使用eratosthenes的筛子计算大量素数相比非常快。因此,我觉得流肯定在语言中占有一席之地,因为它允许在OCAML中进行懒惰评估。

我的教授使用

流以一种渴望的语言来解释懒惰评估的概念,因此在现实世界中没有提及的是,ocaml 可以是 语言本身是渴望的,流是与该概念不平行,并且该流无法被静止。(但是,这是猜测)

相关内容

  • 没有找到相关文章

最新更新