On Mon, Aug 8, 2011 at 1:56 AM, Henning Thielemann < [email protected]> wrote:
> On 24.07.2011 22:20, Antoine Latter wrote: > >> On Sat, Jul 23, 2011 at 1:41 PM, KC<[email protected]> wrote: >> >>> It would be easier for beginners to "grok". >>> >>> >> I think that assumes that all beginners have a strong foundation in >> algebra. Although it does have the advantage that the names are as >> abstract as the class. >> > > As pointed out earlier in this list, the name of the class and the methods > are inconsistent. Monoid refers to a general algebraic structure, whereas > mempty and mappend refer to certain instances like lists. I don't know what the intention for the names was, but I read them as "syntactic" empty and append, as in the monoid constructs of algebra. In other words, we construct "words" by "appending" (or "concatenating") elements of a monoid. And we have an "empty" word. This usage is common enough in mathematics. After all, if we use the Monoid class interface for a type, we are explicitly using the monoid operations, and not the type's underlying interpretation for appending words in the type. Why should the generic monoid operator names reflect the underlying usage?
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
