Gozala / reducers

Library for higher-order manipulation of collections
MIT License
181 stars 8 forks source link

Signal, Channel, emit do not belong in reducers #22

Closed Gozala closed 11 years ago

Gozala commented 11 years ago

While these constructs are essential building blocks for functional reactive style programs, they still do not belong in a reducers library, they should be factored out into a separate library.

Gozala commented 11 years ago

Reducers is a data transformation library that works with different data types. The fact that it defines and exposes it's own types is awkward and also confusing it should just remain as a transformation library. New type definitions should be it's own separate libraries, reducers should be just aware of them as they are aware of arrays and eventuals.

cc @raynos

Raynos commented 11 years ago

@Gozala agreed.

The only things reduce should work out of the box are arrays and eventuals. The former because god damn that's so useful and the latter because you use eventuals at the implementation detail level and if they are not reducible then shit breaks.

Raynos commented 11 years ago

Well actually you want to make arrays reducible by default so that you can use arrays in your unit tests, so it's not because it's really useful but more because you actually need it to test the code.

Gozala commented 11 years ago

@Raynos I think it's fine to make reducibles aware of some data types it's designed to work with. I think that should consist of all built-ins, eventuals and signals. Although data types should not be aware of reducers and should be separate libs.

Gozala commented 11 years ago

Has being removed in 2.0