Quora: What is the difference between monoid and monad? by Mort Yao https://www.quora.com/What-is-the-difference-between-monoid-and-monad/answer/Mort-Yao?share=41115848&srid=ZyHj
A well-said, perhaps the briefest ever answer is: A monad is just a monoid in the category of endofunctors.
A monoid is defined as an algebraic structure (generally, a set) M with a binary operation (multiplication) • : M × M → M and an identity element (unit) η : 1 → M, following two axioms:
∀ a, b, c ∈ M, (a • b) • c = a • (b • c)
∃ e ∈ M ∀ a ∈ M, e • a = a • e = a
When specifying an endofunctor T : X → X (which is a functor that maps a category to itself) as the set M, the Cartesian product of two sets is just the composition of two endofunctors; what you get from here is a monad, with these two natural transformations:
1. The binary operation is just a functor composition μ : T × T → T
2. The identity element is just an identity endofunctor η : I → T
Satisfied the monoid axioms (i. & ii.), a monad can be seen as a monoid which is an endofunctor together with two natural transformations.
The name “monad” came from “monoid” and “triad”, which indicated that it is a triple (1 functor + 2 trasformations), monoidic algebraic structure.
In other words, monoid is a more general, abstract term. When applying it to the category of endofunctors, we have a monad.
State Monad: Milewski