
Departmental Papers (CIS)
Date of this Version
7-2012
Document Type
Conference Paper
Recommended Citation
Brent A. Yorgey, "Monoids: Theme and Variations (Functional Pearl)", . July 2012.
Abstract
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.
Keywords
monoid, homomorphism, monoid action, EDSL
Included in
Programming Languages and Compilers Commons, Software Engineering Commons, Theory and Algorithms Commons
Date Posted: 06 September 2013
This document has been peer reviewed.