fantasyland/fantasy-birds
{ "createdAt": "2016-02-14T21:36:56Z", "defaultBranch": "master", "description": "port of the haskell package Data.Aviary.Birds. Every thing for your combinatory needs.", "fullName": "fantasyland/fantasy-birds", "homepage": "", "language": "JavaScript", "name": "fantasy-birds", "pushedAt": "2016-10-22T16:13:52Z", "stargazersCount": 93, "topics": [], "updatedAt": "2025-06-08T06:26:27Z", "url": "https://github.com/fantasyland/fantasy-birds"}Fantasy Birds
Section titled “Fantasy Birds”
General
Section titled “General”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
Ornithology
Section titled “Ornithology”applicator :: (a -> b) -> a -> b
A combinator or apply
> applicator(x => x + 1)(3)4becard :: (c -> d) -> (b -> c) -> (a -> b) -> a -> d
B3 combinator or function composition (for three functions)
> becard(x => x * -1)(x => x * 2)(x => x - 1)(3)-4blackbird :: (c -> d) -> (a -> b -> c) -> a -> b -> d
B1 combinator
> blackbird(x => x * -1)(x => y => x + y)(3)(5)-8bluebird :: (b -> c) -> (a -> b) -> a -> c
B combinator or function composition
> bluebird(x => x * 2)(x => x - 1)(3)4bluebird_ :: (a -> c -> d) -> a -> (b -> c) -> b -> d
B’ combinator
> bluebird_(x => y => x * y)(2)(x => x + 1)(2)6bunting :: (d -> e) -> (a -> b -> c -> d) -> a -> b -> c -> e
B2 combinator
> bunting(x => x * -1)(x => y => z => x + y + z)(1)(2)(3)-6cardinal :: (a -> b -> c) -> b -> a -> c
C combinator or flip
> cardinal(str => prefix => prefix + str)('-')('birds')'-birds'cardinal_ :: (c -> a -> d) -> (b -> c) -> a -> b -> d
C’ combinator
> cardinal_(x => y => x * y)(x => x + 1)(2)(3)8cardinalstar :: (a -> c -> b -> d) -> a -> b -> c -> d
C* combinator - cardinal once removed.
> cardinalstar(str => prefix => postfix => prefix + str + postfix)('birds')('!')('-')'-birds!'cardinalstarstar :: (a -> b -> d -> c -> e) -> a -> b -> c -> d -> e
C** combinator - cardinal twice removed.
> cardinalstarstar(a => b => separator => postfix => a + separator + b + postfix)('fantasy')('birds')('!')('-')'fantasy-birds!'dickcissel :: (a -> b -> d -> e) -> a -> b -> (c -> d) -> c -> e
D1 combinator
> dickcissel(prefix => postfix => str => prefix + str + postfix)('-')('!')(x => x.toUpperCase())('birds')'-BIRDS!'dove :: (a -> c -> d) -> a -> (b -> c) -> b -> d
D combinator
> dove(postfix => str => str + postfix)('!')(x => x.toUpperCase())('birds')'BIRDS!'dovekie :: (c -> d -> e) -> (a -> c) -> a -> (b -> d) -> b -> e
D2 combinator
> 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 -> e
E combinator
> 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 -> g
E^ combinator
> eaglebald(x => y => y + x)(a => b => b + a)('!')('birds')(a => b => a + b)('fantasy')('-')'fantasy-birds!'finch :: a -> b -> (b -> a -> c) -> c
F combinator
> finch(-1, 3)(x => y => x * y)-3finchstar :: (c -> b -> a -> d) -> a -> b -> c -> d
finchstarstar :: (a -> d -> c -> b -> e) -> a -> b -> c -> d -> e
goldfinch :: (b -> c -> d) -> (a -> c) -> a -> b -> d
hummingbird :: (a -> b -> a -> c) -> a -> b -> c
idiot :: a -> a
identity
> idiot('bird')'bird'idstar :: (a -> b) -> a -> b
idstarstar :: (a -> b -> c) -> a -> b -> c
jalt :: (a -> c) -> a -> b -> c
jalt_ :: (a -> b -> d) -> a -> b -> c -> d
jay :: (a -> b -> b) -> a -> b -> a -> b
kestrel :: a -> b -> a
K combinator or const
> kestrel('bird')('cat')'bird'kite :: a -> b -> b
owl :: ((a -> b) -> a) -> (a -> b) -> b
phoenix :: (b -> c -> d) -> (a -> b) -> (a -> c) -> a -> d
psi :: (b -> b -> c) -> (a -> b) -> a -> a -> c
PSI combinator or on
> psi(x => y => x + y)(x => x * -1)(3)(5)-8