Fluokitten is a Clojure library that implements category theory concepts, such as functors, applicative functors, monads, monoids etc. in idiomatic Clojure.
Project Goals
- Fit well into idiomatic Clojure – Clojure programmers should be able to use and understand Fluokitten like any regular Clojure library.
- Fit well into Haskell monadic types conventions – programmers should be able to reuse existing widespread monadic programming know-how and easily translate it to Clojure code.
- Be reasonably easy to learn – the code from the existing books, articles and tutorials for learning monadic programming, which is usually written in Haskell should be easily translatable to Clojure with Fluokitten.
- Offer good performance.
Documentation & Examples
The project is documented in the following ways:
- API documentation.
- Learning resources on the Fluokitten Homepage
- Code examples that are parts of the test suite.
Fluokitten source code is available at https://github.com/uncomplicate/fluokitten.