读完SICP后,我最近发现streamjs https://github.com/dionyziz/stream.js。开发商参考linqjs http://linqjs.codeplex.com/作为具有不同语法的替代实现,但我无法建立连接。 Streamjs 中的方法如何映射到 linqjs 中的方法?
我没有使用过这两个库,但是,这是我的初步分析(我读过相当多的 SICP,但不可否认不是全部)。
stream.js
是列表的函数式数据结构的实现。函数式语言中的许多数据结构往往是递归的,就像Stream
结构。它由一个 head 元件和一个Stream
对于尾部(后续元素)。在这里,可以通过允许尾部为函数(即无限序列)来实现惰性求值。
现在,回答您的问题,提供的所有功能linq.js
应该能够用其他常见的高阶函数来定义,如 map、reduce、walk、fold 等。
Sure, stream.js
不执行Any()
方法来自linq.js
,但你可以这样做reduce()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)