between: Function combinator "between" and derived combinators
This is a package candidate release! Here you can preview how this package release will appear once published to the main package index (which can be accomplished via the 'maintain' link below). Please note that once a package has been published to the main package index it cannot be undone! Please consult the package uploading documentation for more information.
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 defines ~@~
combinator, but also some derived
combinators that can help us 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 module.
[Skip to Readme]
Properties
Versions | 0.9.0.0, 0.9.0.1, 0.9.0.2, 0.10.0.0, 0.11.0.0, 0.11.0.0 |
---|---|
Change log | ChangeLog.md |
Dependencies | base (>3 && <5) [details] |
License | BSD-3-Clause |
Copyright | (c) 2013-2016, 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.11.0.0) |
Uploaded | by PeterTrsko at 2016-01-09T12:04:22Z |
Modules
[Index]
Flags
Manual Flags
Name | Description | Default |
---|---|---|
pedantic | Pass additional warning flags to GHC. | Disabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- between-0.11.0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
Package maintainers
For package maintainers and hackage trustees