Lennart Augustsson wrote: > Why do people think that you should be able to understand everything > without ever looking things up? > I'll get back to my example from the comment on the blog post. If I > see 'ghee' in a cook book I'll check what it is (if I don't know). It > has a precise meaning and next time I'll know. Inventing a new word > for it serves no purpose, but to confuse people. > Parts of Computer Science seem to love to invent new words for > existing concepts. Again, I think this just confuses people in the > long run. Or use existing words in a different way (like 'functor' in > C++.) > ghee is ghee. There are variations of ghee, but when a cookbook calls for ghee, just about any variation will work fine. Furthermore, whenever a cookbook calls for ghee, you are making food. Conversely a monoid is an algebraic structure. A Monoid (the type class) is an abstraction used to ensure that a particular variation of a monoid is actually representative of a monoid. There are many variations (:i Monoid shows 17 instances). Most are used for different purposes and few are interchangeable for a given purpose.
Inventing new words definitely serves a purpose; it is a form of abstraction. We need new words to manage conceptual complexity just as we build abstractions to manage code complexity. In fact, Monoid was once a new word that was invented to serve that very purpose. I don't think the solution to this problem is to rename it to Appendable. I think the "solution" is to allow programmers to alias Monoid as Appendable similar to the way you can alias a module when you imort it. The details of that solution would be very difficult to introduce though. Drew P. Vogel
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
