University of Pennsylvania ScholarlyCommons Departmental Papers (CIS) Department of Computer & Information Science 7-2012 Monoids: Theme and Variations (Functional Pearl) Brent A. Yorgey University of Pennsylvania,
[email protected] Follow this and additional works at: https://repository.upenn.edu/cis_papers Part of the Programming Languages and Compilers Commons, Software Engineering Commons, and the Theory and Algorithms Commons Recommended Citation Brent A. Yorgey, "Monoids: Theme and Variations (Functional Pearl)", . July 2012. This paper is posted at ScholarlyCommons. https://repository.upenn.edu/cis_papers/762 For more information, please contact
[email protected]. Monoids: Theme and Variations (Functional Pearl) Abstract The monoid is a humble algebraic structure, at first glance ve en 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 Disciplines Programming Languages and Compilers | Software Engineering | Theory and Algorithms This conference paper is available at ScholarlyCommons: https://repository.upenn.edu/cis_papers/762 Monoids: Theme and Variations (Functional Pearl) Brent A. Yorgey University of Pennsylvania
[email protected] Abstract The monoid is a humble algebraic structure, at first glance even downright boring.