Package Exports
- stream-js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (stream-js) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Stream-js
What do you think of the following code snippet?
NaturalNumbers()
.filter(function (n) { return n % 2 === 0; }) //even numbers filter
.pick(100)
.sum();Beautifully succinct right?
Getting started
Stream-js is a very small (4.1kb minified) library that brings the power of streams to your programming. It enables you to write code as shown above.
Get the latest release from GitHub, via NPM or bower.
NPM
npm install stream-jsBower
bower install stream-jsCreating Streams
Streams can be created using the constructor function or using the helper methods: from and fromArray.
var streamOf2 = new Stream(1, function () {
return new Stream(2, null);
});
var stream = Stream.create(1,2,3);
var streamFromArray = Stream.fromArray([1,2,3]);Streams can be finite or infinite. Infinite streams can be used to model infinite series in mathematical domains like Natural numbers etc.
Finite Streams
var s = Stream.create(1,2,3);Infinite Streams
function NaturalNumbers() {
return new Stream(
1,
function () {
return Stream.add(
Stream.NaturalNumbers(),
Stream.Ones());
});
}Using Streams
var evenNaturals = NaturalNumbers().filter(function(val) {
return val % 2 === 0;
});var sum = Stream.create(1,2,3).reduce(function(a, b) {
return a + b;
});Documentation
The stream-js API is available here
Contributing
Got ideas to improve stream-js? Or found a bug? Please file a new [issue] (https://github.com/abdulapopoola/Stream/issues/new).
Tweet feedback and suggestions to me directly @abdulapopoola.
Copyright and license
Created and copyright (c) 2015 by AbdulFattah Popoola.
Stream-js is licensed under the MIT license.