@hackage / between

Function combinator "between" and derived combinators

Latest0.11.0.0

About

Metadata

  • Last updated , by PeterTrsko
  • License BSD-3-Clause
  • Maintained by: peter.trsko@gmail.com

  • Lottery factor: 0

Links

Installation

Tested Compilers

  1. 7.10.3

Package Flags

Use the -f option with cabal commands to enable flags

    pedantic (off by default)

    Pass additional warning flags to GHC.

Readme

Between

Hackage Hackage Dependencies Haskell Programming Language BSD3 License

Build

Description

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

For more examples see documentation.

Documentation

Stable releases with API documentation are available on Hackage.

Building Options

  • -fpedantic (disabled by default)

    Pass additional warning flags to GHC.

License

The BSD 3-Clause License, see LICENSE file for details.

Contributions

Contributions, pull requests and bug reports are welcome! Please don't be afraid to contact author using GitHub or by e-mail (see .cabal file for that).