npm install fantasy-birdsFantasy Birds
=============

> This is a port of the haskell package [Data.Aviary.Birds][haskell-docs].
Every thing for your combinatory needs.
Check out the docs to see all available birds.



[docs]: ./DOCS.md
[haskell-docs]: https://hackage.haskell.org/package/data-aviary-0.4.0/docs/Data-Aviary-Birds.html
[haskell-source]: https://hackage.haskell.org/package/data-aviary-0.4.0/docs/src/Data-Aviary-Birds.html
applicator :: (a -> b) -> a -> bA combinator or apply
``js`
> applicator(x => x + 1)(3)
4
becard :: (c -> d) -> (b -> c) -> (a -> b) -> a -> dB3 combinator or function composition (for three functions)
`js`
> becard(x => x -1)(x => x 2)(x => x - 1)(3)
-4
blackbird :: (c -> d) -> (a -> b -> c) -> a -> b -> dB1 combinator
`js`
> blackbird(x => x * -1)(x => y => x + y)(3)(5)
-8
bluebird :: (b -> c) -> (a -> b) -> a -> cB combinator or function composition
`js`
> bluebird(x => x * 2)(x => x - 1)(3)
4
bluebird_ :: (a -> c -> d) -> a -> (b -> c) -> b -> dB' combinator
`js`
> bluebird_(x => y => x * y)(2)(x => x + 1)(2)
6
bunting :: (d -> e) -> (a -> b -> c -> d) -> a -> b -> c -> eB2 combinator
`js`
> bunting(x => x * -1)(x => y => z => x + y + z)(1)(2)(3)
-6
cardinal :: (a -> b -> c) -> b -> a -> cC combinator or flip
`js`
> cardinal(str => prefix => prefix + str)('-')('birds')
'-birds'
cardinal_ :: (c -> a -> d) -> (b -> c) -> a -> b -> dC' combinator
`js`
> cardinal_(x => y => x * y)(x => x + 1)(2)(3)
8
cardinalstar :: (a -> c -> b -> d) -> a -> b -> c -> dC* combinator - cardinal once removed.
`js`
> cardinalstar(str => prefix => postfix => prefix + str + postfix)('birds')('!')('-')
'-birds!'
cardinalstarstar :: (a -> b -> d -> c -> e) -> a -> b -> c -> d -> eC** combinator - cardinal twice removed.
`js`
> cardinalstarstar(a => b => separator => postfix => a + separator + b + postfix)('fantasy')('birds')('!')('-')
'fantasy-birds!'
dickcissel :: (a -> b -> d -> e) -> a -> b -> (c -> d) -> c -> eD1 combinator
`js`
> dickcissel(prefix => postfix => str => prefix + str + postfix)('-')('!')(x => x.toUpperCase())('birds')
'-BIRDS!'
dove :: (a -> c -> d) -> a -> (b -> c) -> b -> dD combinator
`js`
> dove(postfix => str => str + postfix)('!')(x => x.toUpperCase())('birds')
'BIRDS!'
dovekie :: (c -> d -> e) -> (a -> c) -> a -> (b -> d) -> b -> eD2 combinator
`js`
> dovekie(prefix => str => prefix + str)(x => x.toUpperCase())('fantasy-')(x => x.toLowerCase())('BIRDS')
'FANTASY-birds'
eagle :: (a -> d -> e) -> a -> (b -> c -> d) -> b -> c -> eE combinator
`js`
> eagle(prefix => str => prefix + str)('-')(str => postfix => str + postfix)('birds')('!')
'-birds!'
eaglebald :: (e -> f -> g) -> (a -> b -> e) -> a -> b -> (c -> d -> f) -> c -> d -> gfinch :: a -> b -> (b -> a -> c) -> cfinchstar :: (c -> b -> a -> d) -> a -> b -> c -> dfinchstarstar :: (a -> d -> c -> b -> e) -> a -> b -> c -> d -> egoldfinch :: (b -> c -> d) -> (a -> c) -> a -> b -> dhummingbird :: (a -> b -> a -> c) -> a -> b -> cidiot :: a -> aidentity
`js`
> idiot('bird')
'bird'
idstar :: (a -> b) -> a -> bidstarstar :: (a -> b -> c) -> a -> b -> cjalt :: (a -> c) -> a -> b -> cjalt_ :: (a -> b -> d) -> a -> b -> c -> djay :: (a -> b -> b) -> a -> b -> a -> bkestrel :: a -> b -> aK combinator or const
`js`
> kestrel('bird')('cat')
'bird'
kite :: a -> b -> bowl :: ((a -> b) -> a) -> (a -> b) -> bphoenix :: (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> dpsi :: (b -> b -> c) -> (a -> b) -> a -> a -> cPSI combinator or on
`js``
> psi(x => y => x + y)(x => x * -1)(3)(5)
-8
quacky :: a -> (a -> b) -> (b -> c) -> cqueer :: (a -> b) -> (b -> c) -> a -> cquirky :: (a -> b) -> a -> (b -> c) -> cquixotic :: (b -> c) -> a -> (a -> b) -> cquizzical :: a -> (b -> c) -> (a -> b) -> crobin :: a -> (b -> a -> c) -> b -> crobinstar :: (b -> c -> a -> d) -> a -> b -> c -> drobinstarstar :: (a -> c -> d -> b -> e) -> a -> b -> c -> d -> estarling :: (a -> b -> c) -> (a -> b) -> a -> cstarling_ :: (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> dthrush :: a -> (a -> b) -> bvireo :: a -> b -> (a -> b -> c) -> cvireostar :: (b -> a -> b -> d) -> a -> b -> b -> dvireostarstar :: (a -> c -> b -> c -> e) -> a -> b -> c -> c -> ewarbler :: (a -> a -> b) -> a -> bwarbler1 :: a -> (a -> a -> b) -> bwarblerstar :: (a -> b -> b -> c) -> a -> b -> cwarblerstarstar :: (a -> b -> c -> c -> d) -> a -> b -> c -> d