2 unstable releases

0.2.0 Nov 8, 2021
0.1.0 Oct 25, 2021

#2082 in Rust patterns

25 downloads per month

MIT license

6KB
133 lines

birds

Combinators implemented in Rust named after Raymond Smullyan's birds.

This is just a hobby project to give myself an excuse to explore combinatory logic and Rust generics.

Lambda calculus and Haskell use single argument functions that return another function to "simulate" multiple arguments. Implementing such ideas in Rust can quickly get annoying in Rust both due to the () syntax used to invoke functions and the need to Box our closures. Therefore I've simply used multiple arguments in such cases. (If you have any better ideas please file an issue detailing your idea)

Combinators

  • Bluebird
  • Cardinal
  • Dove
  • Eagle
  • Finch
  • Goldfinch
  • Hummingbird
  • Identity Bird
  • Jay
  • Kestrel
  • Lark
  • Mockingbird
  • Owl
  • Queer Bird
  • Quixotic Bird
  • Quirky Bird
  • Robin
  • Sage bird
  • Starling
  • Thrush
  • Turing bird

Credits

No runtime deps