On Fri, 9 Mar 2001, Frank Atanassow wrote:
A monad on category C is a monoid in the category of endofunctors on C.
Surprisingly, my facetious little remark about monads elicited the following response (whose author I will not disclose, as I haven't obtained permission yet): Somebody wrote (on 09-03-01 15:38 +0000):
Hi Frank --- Believe it or not your one-liner actually *is* helpful to me.
From dim & distant algebra days I remember the definition of monoid (set, binary operation, associative, left & right unit) but being a Physics major/Maths minor, a long time ago, I was deprived of any introduction to Category Theory. I've read some of the papers Haskell monads section & also had a look at some category theory books --- but I can't remember seeing your nice one-line definition --- do you have a reference to the paper or book(s) that do it this way?
I think the monoidal characterization is well known. I first saw it in Asperti & Longo [1] (p.75), but I'm sure it can be found in other texts. The connection with monoids is not very evident in Haskell, but is worth keeping in mind if you know a bit of category theory. BTW, part of the reason I'm posting this to the Haskell list is to plug a little project I have started on my home page. It's a small collection of useful reference texts which deal with programming languages and semantics, all of which have become available on the web. [1] is among these. <start violins for impassioned plea> I occasionally see posts on this list from people who are not researchers or educators (and consequently do not have ready access to such published material) expressing some interest in exploring PL theory and other, related formal topics further, if only the ``barrier-to-entry'' were not so high. Indeed, there is a wealth of technical articles which are available online, and could prove useful or at least interesting to many Haskell and ML programmers, but even the ones directed at a relatively wide audience of PL researchers can be hard to grasp for non-researchers. Personally, I think this is one reason that Haskell and ML are still fairly marginalized languages. My hope is that this list can grow into a useful resource for go-getters and self-starters from other fields and communities, as well as the average PL researcher. <end violins for impassioned plea> OK, I am only a stupid PhD student with no publications under my belt, but anyhow that is how I felt before I became a researcher. Over the space of a few years, while I was still hacking C++ in the dungeons of our vast corporate megacomplex, I laid out several hundred dollars of my own money to buy enough texts to jumpstart my own education, and what started with one book soon exploded into a mini-library of hardbacks and articles (because you know the dependencies in any non-trivial bibliography resemble a large bowl of sticky spaghetti), and I would have been deliriously happy to learn that, for example, Barendregt's encyclopaedic book on lambda-calculus was actually readable from the web. So here's to you, my comrades-in-arms. As it states on my page, if any of you know of any other relevant texts which might be added to the list, please contact me and I will augment the list forthwith. The list is available at: http://www.cs.uu.nl/people/franka/ and here is the reference I promised: [1] Andrea Asperti and Giussepe Longo. Categories, Types and Structures. An introduction to Category Theory for the working computer scientist. MIT Press, 1991. URL: http://www.dmi.ens.fr/users/longo/download.html Regards, -- Frank Atanassow, Information & Computing Sciences, Utrecht University Padualaan 14, PO Box 80.089, 3508 TB Utrecht, Netherlands Tel +31 (030) 253-3261 Fax +31 (030) 251-379