2012-11-29 117 views

回答

1

我还没有使用过任何一个库,但是,这是我的初步分析(我已经阅读了很多SICP,但并未承认)。

stream.js是列表的功能样式数据结构的实现。功能语言中的许多数据结构往往是递归的,就像Stream结构一样。它由头部元素和尾部的Stream(后续元素)组成。在此,可以通过允许尾部是函数(即无限序列)来实现懒惰评估。

现在,为了回答你的问题,所有的由linq.js提供的功能应该能够与其他常见的高阶功能,如地图来定义,减少行走,褶皱等

当然,stream.js不从linq.js实施Any()方法,但您可以使用reduce()

1

我猜他们是相似的,因为他们传递函数而不是“标量值”,所以他们可以做懒惰评估(评估结果在操作结束时/点播,而不是在每个操作,如经典的JavaScript数据结构)。我使用这个原理与我的pimple.js库,它与流或链接无关,但使用懒惰的评估。

0

linq.js和stream.js有以下相似:

  • 使用函数来实现流作为一个数据结构
  • 使用流以实施操作

LINQ的懒惰评价。 js和stream.js有以下区别:

  • linq.js有语法糖分[R查询JSON
  • stream.js有能力链流
  • linq.js具有集合运算的语法糖

参考

相关问题