# reducible

> High-order abstraction for reducible data structures

Latest version **1.0.6** (published 2013-03-12) · 0 weekly downloads

## Install

```sh
npm install reducible
pnpm add reducible
yarn add reducible
bun add reducible
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.6 |
| Published | 2013-03-12 |
| First published | 2012-11-24 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 13 |
| Author | Irakli Gozalishvili |
| Maintainers | gozala |
| Keywords | reducers, reducible, reduce, data, sequence, stream, collection, transformation, composable, async, signal, manipulation |

## Links

- npm: https://www.npmjs.com/package/reducible
- Repository: https://github.com/Gozala/reducible
- Issues: http://github.com/Gozala/reducible/issues/
- npm.io page: https://npm.io/package/reducible

## Dependencies (1)

- [method](https://npm.io/package/method.md) ~2.0.x

## Alternatives

- [@libsql/sqlite3](https://npm.io/package/@libsql/sqlite3.md) — 39.8K weekly downloads
- [@fortemi/core](https://npm.io/package/@fortemi/core.md) — 461 weekly downloads
- [cdb-converter](https://npm.io/package/cdb-converter.md) — 341 weekly downloads
- [@uplo/adapter-prisma](https://npm.io/package/@uplo/adapter-prisma.md) — 75 weekly downloads
- [typeorm-aios](https://npm.io/package/typeorm-aios.md) — 30 weekly downloads

## Recent versions

- 1.0.6 (latest) — 2013-03-12
- 2.0.0-beta — 2013-01-22
- 1.0.5 — 2012-12-19
- 1.0.1 — 2012-11-24
- 1.0.0 — 2012-11-24

## README

# reducible

[![Build Status](https://secure.travis-ci.org/Gozala/reducible.png)](http://travis-ci.org/Gozala/reducible)

Library defines higher-order abstraction for reducible data structures -
collections based upon [reduce][].

Most functional languages (including beloved JS) typically come with some
collection transformation functions like [filter][] and [map][] that take a
logical collections and return transformed version of it. Unfortunately they
tend to [complect][], by implying mechanism, order, laziness and
representation. This library is an attempt to provide simple solution for
some of the hard problems by decomplecting and building upon simple premise -
minimum definition of collection is something that is reducible.

More specifically library defines super-generalized and minimal abstraction for
collections - a collection is some set of things that, when given a function to
apply to its contents, can do so and give you the result, i.e. a collection is
(at minimum) **reducible**. In other words, you can call `reduce` on it.

## reducers

This library provides an abstraction for **reducible** data structures and
implementation of internal [reduce][] for built-in data types. It can be used
to implement to define abstraction for all other types. This is also foundation
for [reducers][] - Library for higher-order manipulation of reducible
collections.

## Install

    npm install reducible

## Prior art

- [Clojure reducers][]
- [Haskell Enumerator/Iteratee][]

[Clojure reducers]:http://clojure.com/blog/2012/05/15/anatomy-of-reducer.html
[Haskell Enumerator/Iteratee]:http://www.haskell.org/haskellwiki/Enumerator_and_iteratee

[reducers]:https://github.com/Gozala/reducers
[reduce]:http://en.wikipedia.org/wiki/Reduce_%28higher-order_function%29
[map]:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/map
[filter]:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/filter
[complect]:http://www.infoq.com/presentations/Simple-Made-Easy

---
_Source: https://npm.io/package/reducible · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
