We learned about monoids, we learned the
(mathematician’s) definition of a Monad, and now we’re going to take a look at
at least one alternative (but equivalent) definition more often used in
computer science. This is the **Kleisli triple**.

Software! Math! Data! The blog of R. Sean Bowman

February 01 2016

We learned about monoids, we learned the
(mathematician’s) definition of a Monad, and now we’re going to take a look at
at least one alternative (but equivalent) definition more often used in
computer science. This is the **Kleisli triple**.

January 04 2016

We previously looked at a generalization
of the familiar algebraic concept of a **monoid** to a category. We’re now in
a position to give the “mathematician’s definition” of a monad. People seem
to have different opinions of this definition. I personally think that it’s
simple, elegant, and captures the spirit of generality of category theory.
I have heard that some people use this definition to belittle or confuse
people. Perhaps it’s just that people feel belittled or confused by it. In
any case, describing a monad isn’t easy, and we shouldn’t feel bad if we don’t
understand it very well at first.

December 01 2015

I want to talk about monads. These are fairly obscure mathematical objects that have received quite a bit of attention in the programming community lately. This, I think, is mostly because of their use in Haskell to handle "side effects" and other notions of computation inside the type system. It’s grown from there, however, and now you can find monad tutorials and code using monads in languages from Javascript to C++. Today, I want to talk a little about category theory, the history of monads, and the context in which mathematicians and theoretical computer scientists see them.

October 03 2015

At the risk of alienating those of you who are more interested in software than
abstract mathematics, I’d like to write about some basic category
theory. The idea is to work my way up to defining a monad, because that seems
to be a requisite exercise for any programming language blogger. Here, I’d
like to talk about something a bit simpler: **monoids**.