Date of this Version
Brent A. Yorgey, "Monoids: Theme and Variations (Functional Pearl)", . July 2012.
The monoid is a humble algebraic structure, at first glance even downright boring. However, there’s much more to monoids than meets the eye. Using examples taken from the diagrams vector graphics framework as a case study, I demonstrate the power and beauty of monoids for library design. The paper begins with an extremely simple model of diagrams and proceeds through a series of incremental variations, all related somehow to the central theme of monoids. Along the way, I illustrate the power of compositional semantics; why you should also pay attention to the monoid’s even humbler cousin, the semigroup; monoid homomorphisms; and monoid actions.
monoid, homomorphism, monoid action, EDSL
Date Posted: 06 September 2013
This document has been peer reviewed.