From c070ce9d43096f616e80000f05ceca472c842d2a Mon Sep 17 00:00:00 2001 From: David Chambers Date: Sun, 8 Oct 2017 22:50:19 +0200 Subject: [PATCH] add Filterable algebra --- README.md | 44 +++++++++++++++++++++++++++++++++++++-- figures/dependencies.dot | 4 +++- figures/dependencies.png | Bin 47141 -> 50796 bytes index.js | 1 + laws/filterable.js | 33 +++++++++++++++++++++++++++++ 5 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 laws/filterable.js diff --git a/README.md b/README.md index 9a7b19b..a16bfff 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ structures: * [Applicative](#applicative) * [Alt](#alt) * [Plus](#plus) +* [Filterable](#filterable) * [Alternative](#alternative) * [Foldable](#foldable) * [Traversable](#traversable) @@ -33,7 +34,7 @@ structures: * [Bifunctor](#bifunctor) * [Profunctor](#profunctor) - + ## General @@ -497,6 +498,34 @@ Given a value `x`, one can access its type representative via the 1. `zero` must return a value of the same Plus +### Filterable + +A value that implements the Filterable specification must also implement +the [Plus](#plus) specification. + +1. `f.filter(x => true)` is equivalent to `f` (identity) +2. `f.filter(x => false)` is equivalent to `f.constructor.zero()` (annihilation) +3. `f.filter(p).filter(p)` is equivalent to `f.filter(p)` (idempotence) + +#### `filter` method + +```hs +filter :: Filterable f => f a ~> (a -> Boolean) -> f a +``` + +A value which has a Filterable must provide a `filter` method. The `filter` +method takes one argument: + + f.filter(p) + +1. `p` must be a function. + + 1. If `p` is not a function, the behaviour of `filter` is unspecified. + 2. `p` must return either `true` or `false`. If it returns any other value, + the behaviour of `filter` is unspecified. + +2. `filter` must return a value of the same Filterable. + ### Alternative A value that implements the Alternative specification must also implement @@ -836,7 +865,7 @@ to implement certain methods then derive the remaining methods. Derivations: function(f) { function Id(value) { this.value = value; - }; + } Id.of = function(x) { return new Id(x); }; @@ -850,6 +879,15 @@ to implement certain methods then derive the remaining methods. Derivations: } ``` + - [`filter`][] may be derived from [`of`][], [`chain`][], and [`zero`][]: + + ```js + function(pred) { + var F = this.constructor; + return this.chain(x => pred(x) ? F.of(x) : F.zero()); + } + ``` + If a data type provides a method which *could* be derived, its behaviour must be equivalent to that of the derivation (or derivations). @@ -873,12 +911,14 @@ be equivalent to that of the derivation (or derivations). [`equals`]: #equals-method [`extend`]: #extend-method [`extract`]: #extract-method +[`filter`]: #filter-method [`lte`]: #lte-method [`map`]: #map-method [`of`]: #of-method [`promap`]: #promap-method [`reduce`]: #reduce-method [`sequence`]: #sequence-method +[`zero`]: #zero-method ## Alternatives diff --git a/figures/dependencies.dot b/figures/dependencies.dot index d632f3f..3d102ea 100644 --- a/figures/dependencies.dot +++ b/figures/dependencies.dot @@ -11,11 +11,12 @@ digraph { Chain; ChainRec; Comonad; + Contravariant; Extend; + Filterable; Foldable; Functor; Group; - Contravariant; Monad; Monoid; Ord; @@ -44,6 +45,7 @@ digraph { Functor -> Traversable; Monoid -> Group; Plus -> Alternative; + Plus -> Filterable; Semigroup -> Monoid; Semigroupoid -> Category; Setoid -> Ord; diff --git a/figures/dependencies.png b/figures/dependencies.png index e4d814b1dc3607f5f1bdf6f71961eaa8fee458c8..a94963c0d761923f842ef1a40c43be7f29563a8e 100644 GIT binary patch literal 50796 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≠4CLUn*$JUo!4bg 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 true)` is equivalent to `f` (identity) +2. `f.filter(x => false)` is equivalent to `f.constructor.zero()` (annihilation) +3. `f.filter(p).filter(p)` is equivalent to `f.filter(p)` (idempotence) + +**/ + +const identity = eq => filterable => { + const a = filterable[filter](x => true); + const b = filterable; + return eq(a, b); +}; + +const annihilation = eq => filterable => { + const a = filterable[filter](x => false); + const b = filterable.constructor[zero](); + return eq(a, b); +}; + +const idempotence = eq => pred => filterable => { + const a = filterable[filter](pred)[filter](pred); + const b = filterable[filter](pred); + return eq(a, b); +}; + +module.exports = {identity, annihilation, idempotence};