[Haskell-cafe] N and R are categories, no?

Ulf Norell ulfn at cs.chalmers.se
Thu Mar 15 04:40:08 EDT 2007

On 3/15/07, Steve Downey <sdowney at gmail.com> wrote:
> EOk, i'm trying to write down, not another monad tutorial, because I
> don't know that much yet, but an explication of my current
> understanding of monads.
> But before I write down something that is just flat worng, I thought
> I'd get a cross check. (and I can't get to #haskell)
> Monads are Functors. Functors are projections from one category to
> another such that structure is preserved. One example I have in mind
> is the embedding of the natural numbers into the real numbers. The
> mapping is so good, that we don't flinch at saying 1 == 1.0.

Monads are endofunctors (functors from one category to itself). This is easy
to see from the type of join:

join : m (m a) -> m a

For Haskell monads the category is the category of Haskell types and Haskell
functions. In this category N and R are objects, so you'll get the wrong
idea trying to see them as categories.

/ Ulf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20070315/bce911ca/attachment-0001.htm

More information about the Haskell-Cafe mailing list