答案 0 :(得分:1)
我猜它们是相似的,因为它们传递函数而不是“标量值”,因此它们可以进行延迟评估(在操作结束时/按需评估结果,而不是像每个操作一样评估经典的javascript数据结构)。我在pimple.js库中使用了这个原则,它与流或链接无关,但使用了懒惰的评估。
答案 1 :(得分:1)
我没有使用任何一个库,但是,这是我的初步分析(我已经阅读了相当多的SICP,但事实并非如此)。
stream.js
是列表的功能样式数据结构的实现。函数式语言中的许多数据结构往往是递归的,就像Stream
结构一样。它由头元素和尾部Stream
(后续元素)组成。这里,可以通过允许尾部成为函数(即无限序列)来实现惰性评估。
现在,为了回答你的问题,linq.js
提供的所有功能都应该能够与其他常见的高阶函数一起定义,例如map,reduce,walk,fold等。
当然,stream.js
未实现Any()
中的linq.js
方法,但您可以使用reduce()
执行此操作。
答案 2 :(得分:0)
linq.js和stream.js具有以下相似之处:
linq.js和stream.js有以下不同之处:
<强>参考强>