
At 08:11 AM 7/28/2006, Dave Abrahams wrote:
On Tue, 25 Jul 2006 10:44:14 -0400, David Abrahams <dave@boost-consulting.com> wrote:
So, I will use "metafunctor" and "metafunctoid"
Those terms don't intimidate junior colleagues? They intimidate me!
Nah, don't let them do. They are just thin wrappers around Greek terminology ;-)
Do "...or" and "...oid" really connote distinct meanings? That's the problem I have with them
As near as I can tell, the terms are being applied pretty arbitrarilly -- they have almost no useful a-priori connotation at all. According to Miriam-Webster on-line: the ending "-or" means "one who does a (specified) thing" so, for example, a "grantor" is one who "grants". An alternative meaning is "condition" or "activity". From the same source the ending "-oid" means either "something resembling a (specified) object" or "having a (specified) quality". Metafunctoid does fit this somewhat but its implicit meaning is pretty broad to be introduced to draw fine distinctions. As for "functor" it comes from Category Theory and is something that maps one category (broad mathematical structure, like the general idea of a "group") to another while preserving certain properties. With or without the "meta-" it doesn't seem at all relevant. It probably entered this area of discussion by way of Prolog which used the term to designate the atom that started a structure. The probable intention of this terminology, though, was "function" meaning "purpose" -- the "functor" was the thing that specified the purpose, or meaning, of the structure. So in (father-of jim tom) the functor is father-of. To be useful (interpretable) use of a particular functor implies that the structure has a particular "arity" with each position having an implied meaning and therefore implicit type (essentially -- an expectation that only certain atoms or structures with certain functors will appear at that position). A "functor" in Prolog pretty much corresponds to "class" in C++. Since Prolog, "functors" as things that tag a list implying the number and types of the elements has entered a number of languages/data systems (e.g., Eclipse). Structures representing "function invocations" are certainly applicable and the pressure of a false etymology certainly encourages that specific narrowed usage. But it is a false etymology and, I would say, is best avoided. Topher