On Oct 31, 2005, at 3:02 AM, Cale Gibbard wrote:

Perhaps you're referring to a monoid. Since you seem to have some
familiarity with category theory, check out
http://en.wikipedia.org/wiki/Monad_%28category_theory%29 for a formal
definition of monads and some background. Translating between
notation, μ = join and η = return in Haskell. The application of the
functor T to functions is called fmap, or liftM, which should always
be equivalent.

The functor behind a monad is always an endofunctor, that is, from the
category to itself. In this case, you'll be interested in the category
of Haskell types and Haskell-definable functions between them.

This was actually quite helpful. If someone had told me that a monad was a functor in the first place, this would all have been much less mysterious. (BTW, I have indeed encountered adjoint functors, Hom and Tensor, in the context of algebraic topology, so the article did leave me with a bit more of a sense of having my feet on the ground.)


For a much gentler description and one way in which monads relate to
programming, check out
http://www.haskell.org/hawiki/MonadsAsContainers which is an article
that I wrote.


This is an excellent article! I found it extremely useful and lucid. To be sure, it's going to take a bit more time to let all these ideas sink in, but I liked the approach of focusing on fmap and join (>>= always seemed mysterious). Believe it or not, though I've read that lists are monads, this is perhaps the first time I've seen it spelled out just how.

===
Gregory Woodhouse
[EMAIL PROTECTED]

"It is foolish to answer a question that
you do not understand."
--G. Polya ("How to Solve It")



_______________________________________________
Haskell mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to