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…)


25 February 2009 at 12:06 pm 1 comment