From: Topher Cooper (topher_at_[hidden])
Date: 2006-07-28 09:47:30
At 08:11 AM 7/28/2006, Dave Abrahams wrote:
> > On Tue, 25 Jul 2006 10:44:14 -0400, David Abrahams
> > <dave_at_[hidden]> 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.
Boost list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk