Monoids: theme and variations <i>(functional pearl)</i>

Authors:
Brent A. Yorgey
Published:
In ICFP'12: ACM SIGPLAN International Conference on Functional Programming. September 13, 2012.
Other Versions: 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.

BibTeX:
@inproceedings{yorgey2012,
  title = {{Monoids}},
  author = {Brent A. Yorgey},
  booktitle = {ICFP'12: ACM SIGPLAN International Conference on Functional Programming},
  year = 2012,
  doi = {10.1145/2364506.2364520},
}