between: Function combinator "between" and derived combinators
It turns out that this combinator
f ~@~ g = (f .) . (. g)
is a powerful thing. It was abstracted from following (commonly used)
pattern f . h . g
where f
and g
are fixed.
This library not only define ~@~
combinator, but also some derived
combinators that can help us to easily define a lot of things including
lenses. See lens package for
detais on what lenses are.
Function Data.Function.on
can be implemented using ~@~
as:
on :: (b -> b -> c) -> (a -> b) -> a -> a -> c on f g = (id ~@~ g ~@~ g) f
If function on3
existed in base then it could be defined as:
on3 :: (b -> b -> b -> d) -> (a -> b) -> a -> a -> a -> d on3 f g = (id ~@~ g ~@~ g ~@~ g) f
Other usage examples and documentation can be found in Data.Function.Between.
[Skip to Readme]
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
pedantic | Pass additional warning flags including -Werror to GHC during compilation. | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- between-0.9.0.2.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.9.0.0, 0.9.0.1, 0.9.0.2, 0.10.0.0, 0.11.0.0 |
---|---|
Change log | ChangeLog.md |
Dependencies | base (>3 && <5) [details] |
License | BSD-3-Clause |
Copyright | (c) 2013, 2014 Peter Trško |
Author | Peter Trško |
Maintainer | peter.trsko@gmail.com |
Category | Data |
Home page | https://github.com/trskop/between |
Bug tracker | https://github.com/trskop/between/issues |
Source repo | head: git clone git://github.com/trskop/between.git this: git clone git://github.com/trskop/between.git(tag v0.9.0.2) |
Uploaded | by PeterTrsko at 2014-08-30T09:38:05Z |
Distributions | LTSHaskell:0.11.0.0, NixOS:0.11.0.0, Stackage:0.11.0.0 |
Reverse Dependencies | 3 direct, 0 indirect [details] |
Downloads | 5318 total (36 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs available [build log] Successful builds reported [all 1 reports] |