Lazy generic streams

npm install
8 downloads in the last month

Build Status NPM version Dependencies Status experimental

Lazy generic streams


var Stream = require('')

var naturals = Stream.iterate(function(n){ return n + 1 }, 0)
var squared  ={ return n * n })

// => [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

var fibs = new Cons(1, function(){
  return new Cons(2, function() {
    return Stream.zipWith(function(a, b){ return a + b })(fibs)(

// => [ 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ]


The easiest way is to grab it from NPM. If you're running in a Browser environment, you can use [Browserify][]

$ npm install

Using with CommonJS

If you're not using NPM, [Download the latest release][release], and require the file:

var Stream = require('')

Using with AMD

[Download the latest release][release], and require the file:

require([''], function(Stream) {
  ( ... )

Using without modules

[Download the latest release][release], and load the file. The properties are exposed in the global object:

<script src="/path/to/"></script>

Compiling from source

If you want to compile this library from the source, you'll need [Git][], [Make][], [Node.js][], and run the following commands:

$ git clone git://
$ cd
$ npm install
$ make bundle

This will generate the dist/ file, which you can load in any JavaScript environment.


You can [read the documentation online][docs] or build it yourself:

$ git clone git://
$ cd
$ npm install
$ make documentation

Then open the file docs/literate/index.html in your browser.

Platform support

This library assumes an ES5 environment, but can be easily supported in ES3 platforms by the use of shims. Just include [es5-shim][] :)


Copyright (c) 2013 Quildreen Motta.

Released under the MIT licence.

[Fantasy Land]: [Browserify]: [Git]: [Make]: [Node.js]: [es5-shim]: [docs]: [release]:
npm loves you