Fluokitten: Guide List
Fluokitten documentation is organized as a number of guides, articles and API docs. The recommended way to use it is:
- Read Getting Started guide first
- Fluokitten documentation and tutorials do not have to be read in a particular order. They serve as a reference and as tutorials.
- Various tutorials on category theory that are provided in this list are meant to be read in order. You should check out Fluokitten documentation in parallel to this when needed.
An overview of Fluokitten with a quick tutorial that helps you to get started with it. It should take about 15 minutes to read and try the provided code examples.
Fluokitten Documentation and Tutorials
These contain reference documentation and Fluokitten specific tutorials that should be read in parallel to learning resources provided in the next section.
Automatically generated reference API documentation.
This guide explains in detail how various Clojure core artifacts (collections, functions, references, etc.) implement Fluokitten protocols (
This guide explains how you can make your own implementations of Fluokitten protocols.
Tutorials on Category Theory in Programming - Clojure versions
These are the learning resources available for free on the Web that we think are very good at explaining category theory concepts in programming. In these articles, we point to the original content and provide our comments on how to use them with Fluokitten. We also provide partial or complete source code in Clojure of the examples used in these resources (which are usually originally written in Haskell). These Guides are meant to be read in this particular order.
A Fluokitten version of an excellent visual introductory article Functors, Applicatives and Monads in Pictures.
A Fluokitten Clojure code version of the sections of Learn You A Haskell for Great Good dedicated to Functors, Applicatives, Monads, etc. with comments and directions on how to use them together.
Tell Us What You Think!
Please take some time to tell us about your experience with the library and this site. Let us know what we should be explaining or is not clear enough. If you are willing to contribute improvements, even better!