3

One of the standard newbie Haskell questions is a remark isomorphic to "what the holy hell is a monad?!" The canonical answer to this question is infamously defined as "a monad is simply a monoid in the category of endofunctors, what's the problem?"

Now obviously a monoid is simply any set bearing an associative binary operator who's identity is an element of the set. But what is "the category of endofunctors"? More generally, what's a category, what's an endofunctor, and for that matter, what's a functor? (And how closely is the CT definition of functor related to what Haskell calls a Functor?)

MathematicalOrchid
  • 61,854
  • 19
  • 123
  • 220

0 Answers0