* Recursion Schemes
An Elixir implementation of generic recursion schemes; functions for building and consuming recursively defined data structures.
See [[http://axiom-wiki.newsynthesis.org/public/refs/Meijer-db-utwente-40501F46.pdf][Functional Programming with Bananas Lenses Envelopes and Barbed Wire]] for the seminal paper describing recursion schemes.
The current implementation includes [[https://en.wikipedia.org/wiki/Catamorphism][catamorphism]], [[https://en.wikipedia.org/wiki/Anamorphism][anamorphism]], and [[https://en.wikipedia.org/wiki/Hylomorphism_(computer_science)][hylomorphism]]. These functions are for (respectively) consuming, creating, and creating then consuming data structures.
Up-to-date docs can be found via [[https://hexdocs.pm/recursion_schemes][hexdocs.pm/recursion_schemes]].
/Note:/ This library is in development and the API is subject to change.
** Installation
Add `recursion_schemes` to your list of dependencies in `mix.exs`:
#+BEGIN_SRC elixir
def deps do
[{:recursion_schemes, "~> 0.1.0"}]
end
#+END_SRC