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:

Fluokitten source code is available at https://github.com/uncomplicate/fluokitten.