Monoids: theme and variations (functional pearl)

  • Authors:
  • Brent A. Yorgey

  • Affiliations:
  • University of Pennsylvania, Philadelphia, PA, USA

  • Venue:
  • Proceedings of the 2012 Haskell Symposium
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

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.