## Posts tagged ‘functor’

### Monads in mathematics 1 : examples

Category theory studies in an abstract way how structures and constructions of mathematics are related. A category is a collection of (mathematical) objects. Usually, interesting categories contain objects sharing the same properties (there is a category of sets, a category of groups, a category of rings, and so on). A category need also have a definition of arrows, which often correspond to the usual definition of functions, maps or morphisms. But it is possible to define categories having more complicated arrows. A (not so) stupid non-trivial category is the opposite category Cop of a given category C, which has arrows going the other way.

A monad M on a category C is a functor: it associates to any object X in C another object MX of C in a so-called functorial way, which means that any arrow $X to Y$ should give rise to an arrow $MX to MY$. But in order to call M a monad, we require several other properties: there should be natural transformations $X to MX$ (so that $X to MX to MY$ and $X to Y to MY$ are the same, which can be expressed by a commutative square), and $MMX to MX$ such that $MX to MMX to MX$ is the identity (notice that there are two ways to obtain an arrow $MX to MMX$). MacLane in Categories for the Working Mathematician gives a good account of the theory along with a bit of history and references.

Most examples of monads arising in mathematics are derived from two concepts: operads, which combine monads with much richer structure (but correspond to really tangible examples), and adjunctions (a framework in which monads can actually fit). I should write about these later, and concentrate on examples. Monads are also used in computer science, because they model a construction scheme which is widely spread. The programming language Haskell formulates many concepts in the language of monads. Marco Maggesi wrote a small introduction to monads (in Italian), which covers monads appearing in Haskell. (more…)