{ "name": "reducible", "id": "reducible", "version": "1.0.6", "description": "High-order abstraction for reducible data structures", "keywords": [ "reducers", "reducible", "reduce", "data", "sequence", "stream", "collection", "transformation", "composable", "async", "signal", "manipulation" ], "author": { "name": "Irakli Gozalishvili", "email": "rfobic@gmail.com", "url": "http://jeditoolkit.com" }, "homepage": "https://github.com/Gozala/reducible", "repository": { "type": "git", "url": "https://github.com/Gozala/reducible.git", "web": "https://github.com/Gozala/reducible" }, "bugs": { "url": "http://github.com/Gozala/reducible/issues/" }, "devDependencies": { "test": "~0.x.0", "phantomify": "~0.x.0" }, "main": "./reducible.js", "scripts": { "test": "npm run test-node && npm run test-browser", "test-browser": "node ./node_modules/phantomify/bin/cmd.js ./test/index.js", "test-node": "node ./test/index.js" }, "licenses": [ { "type": "MIT", "url": "https://github.com/Gozala/reducible/License.md" } ], "dependencies": { "method": "~2.0.x" }, "readme": "# reducible\n\n[![Build Status](https://secure.travis-ci.org/Gozala/reducible.png)](http://travis-ci.org/Gozala/reducible)\n\nLibrary defines higher-order abstraction for reducible data structures -\ncollections based upon [reduce][].\n\nMost functional languages (including beloved JS) typically come with some\ncollection transformation functions like [filter][] and [map][] that take a\nlogical collections and return transformed version of it. Unfortunately they\ntend to [complect][], by implying mechanism, order, laziness and\nrepresentation. This library is an attempt to provide simple solution for\nsome of the hard problems by decomplecting and building upon simple premise -\nminimum definition of collection is something that is reducible.\n\nMore specifically library defines super-generalized and minimal abstraction for\ncollections - a collection is some set of things that, when given a function to\napply to its contents, can do so and give you the result, i.e. a collection is\n(at minimum) **reducible**. In other words, you can call `reduce` on it.\n\n## reducers\n\nThis library provides an abstraction for **reducible** data structures and\nimplementation of internal [reduce][] for built-in data types. It can be used\nto implement to define abstraction for all other types. This is also foundation\nfor [reducers][] - Library for higher-order manipulation of reducible\ncollections.\n\n## Install\n\n npm install reducible\n\n## Prior art\n\n- [Clojure reducers][]\n- [Haskell Enumerator/Iteratee][]\n\n[Clojure reducers]:http://clojure.com/blog/2012/05/15/anatomy-of-reducer.html\n[Haskell Enumerator/Iteratee]:http://www.haskell.org/haskellwiki/Enumerator_and_iteratee\n\n[reducers]:https://github.com/Gozala/reducers\n[reduce]:http://en.wikipedia.org/wiki/Reduce_%28higher-order_function%29\n[map]:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map\n[filter]:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/filter\n[complect]:http://www.infoq.com/presentations/Simple-Made-Easy\n", "readmeFilename": "Readme.md", "_id": "reducible@1.0.6", "_from": "reducible@~1.0.1" }