首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ocaml的溪流真的被使用了吗?

ocaml的溪流真的被使用了吗?
EN

Stack Overflow用户
提问于 2015-05-12 17:43:58
回答 3查看 708关注 0票数 7

查看不同的ocaml项目,我没有看到在语言中使用的内置流。即使在最近出版的“真实世界”()一书中,也根本没有提到流,这是很奇怪的。

原因是什么?是因为Lwt还是核心超级种子?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-05-12 22:26:36

我想我是在这个错误报告上回答这个问题的。

票数 11
EN

Stack Overflow用户

发布于 2015-05-13 13:04:58

流很好地支持camlp4语法,如果没有它,它们很难使用。因此,这是很久以前的事了(虽然理论上它仍然是可用的)。根据Drup的参考,它们甚至会在不久的将来(今年)从核心语言中被移除,并且可能会被移到一个独立的库中。

这并不是说,流作为数据结构有什么问题。在许多OCaml项目中,这仍然是一种非常有价值的技术,他们只是使用不同的库来实现这一点。有核心Sequence,电池Enum,西蒙克鲁斯的gensequence包,约瑟夫阿布拉汉森的fstream包等等。

票数 2
EN

Stack Overflow用户

发布于 2015-05-13 02:41:58

流可以用于OCaml中的“懒惰评估”,特别是因为OCaml是一种热切的语言,因此肯定有一些有用的例子需要懒惰评估(比如在Haskell中)。

引用康奈尔溪流讲座的话,

在现实生活中,流实际上是有用的。一些申请:

  • 从文本读取源文件的编译器
  • 网络套接字
  • 音视频信号处理
  • 语音识别
  • 用收敛级数逼近方程的解

提供的引用还使用流来惰性地计算素数,这与使用Eratosthenes筛子计算大素数的一般方法相比非常快。因此,我觉得流在语言中肯定有自己的位置,因为它允许在OCaml中进行懒惰的评估。

流被我的教授用一种渴望的语言解释了懒惰评估的概念,在真实世界的OCaml中没有提到它的原因可能是因为语言本身是渴望的,流不是与这个概念平行的,而且流不能是多线程的。(不过,这是猜测)

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

https://stackoverflow.com/questions/30197961

复制
相关文章

相似问题

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