[Haskell-cafe] Comments from OCaml Hacker Brian Hurt
Jeremy Shaw
jeremy at n-heptane.com
Fri Jan 16 10:13:33 EST 2009
Hello,
Personally, I would like to see the laws more explicitly listed. Some
like:
-- The Monoid Laws:
--
-- 1. Associative:
--
-- x `mappend` (y `mappend` z) == (x `mappend` y) `mappend` z
--
-- 2. Left Identity:
--
-- mempty `mappend` y == y
--
-- 3. Right identity:
--
-- x `mappend` mempty == x
(Actually, what I'd really like to see is the laws provided as
QuickCheck properties. I know there is a project doing this already.)
j.
At Fri, 16 Jan 2009 13:39:10 +0000,
Duncan Coutts wrote:
>
> On Fri, 2009-01-16 at 14:16 +0100, david48 wrote:
>
> > Upon reading this thread, I asked myself : what's a monoid ? I had no
> > idea. I read some posts, then google "haskell monoid".
> >
> > The first link leads me to Data.Monoid which starts with
> >
> > <<
> > Description
> > The Monoid class with various general-purpose instances.
> >
> > Inspired by the paper /Functional Programming with Overloading and
> > Higher-Order Polymorphism/, Mark P Jones
> > (http://citeseer.ist.psu.edu/jones95functional.html) Advanced School
> > of Functional Programming, 1995.
> > >>
>
> Ross just updated the documentation for the Monoid module. Here is how
> it reads now:
>
> The module header now reads simply:
>
> A class for monoids (types with an associative binary operation
> that has an identity) with various general-purpose instances.
>
> Note, no links to papers.
>
> And the Monoid class has:
>
> The class of monoids (types with an associative binary operation
> that has an identity). The method names refer to the monoid of
> lists, but there are many other instances.
>
> Minimal complete definition: 'mempty' and 'mappend'.
>
> Some types can be viewed as a monoid in more than one way, e.g.
> both addition and multiplication on numbers. In such cases we
> often define @newtype at s and make those instances of 'Monoid',
> e.g. 'Sum' and 'Product'.
>
> If you or anyone else has further concrete suggestions / improvements
> then post them here now! :-)
>
>
> Duncan
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list