阅读SICP之后,我最近发现了streamjs。开发人员引用linqjs作为具有不同语法的替代实现,但是我无法建立连接。 streamjs中的方法如何映射到linqjs中的方法?

最佳答案

我没有使用任何一个库,但是,这是我的初步分析(我已经阅读了很多SICP,但请注意,并不是全部)。

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

现在,要回答您的问题,linq.js提供的所有功能都应该能够与其他常见的高阶功能(例如map,reduce,walk,fold等)一起定义。

当然,stream.js不会从Any()实现linq.js方法,但是您可以使用reduce()来实现。

10-08 04:01