• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 网页制作 > JavaScript >

stream.js :一个新的JavaScript数据结构(5)

来源: www.dedecms8.com 编辑:织梦吧 时间:2012-02-07点击:

  请注意,如果你在一个无限大的stream上使用 s.print(),它会无休无止的打印下去,最终耗尽你的内存。所以,你最好在使用s.print()前先s.take( n )。在一个无穷大的stream上使用s.length()也是无意义的,所有,不要做这些操作;它会导致一个无尽的循环(试图到达一个无尽的stream的尽头)。但是对于无穷大stream,你可以使用s.map( f ) 和 s.filter( f )。然而,s.walk( f )对于无穷大stream也是不好用。所有,有些事情你要记住; 对于无穷大的stream,一定要使用s.take( n )取出有限的部分。

  让我们看看能不能做一些更有趣的事情。还有一个有趣的能创建包含自然数的stream方式:

  1. function ones() {   
  2.     return new Stream( 1, ones );   
  3. }   
  4. function naturalNumbers() {   
  5.     return new Stream(   
  6.         // the natural numbers are the stream whose first element is 1...   
  7.         1,   
  8.         function () {   
  9.             // and the rest are the natural numbers all incremented by one   
  10.             // which is obtained by adding the stream of natural numbers...   
  11.             // 1, 2, 3, 4, 5, ...   
  12.             // to the infinite stream of ones...   
  13.             // 1, 1, 1, 1, 1, ...   
  14.             // yielding...   
  15.             // 2, 3, 4, 5, 6, ...   
  16.             // which indeed are the REST of the natural numbers after one   
  17.             return ones().add( naturalNumbers() );   
  18.         }    
  19.     );   
  20. }   
  21. naturalNumbers().take( 5 ).print(); // prints 1, 2, 3, 4, 5 

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ