Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!tut.cis.ohio-state.edu!pt.cs.cmu.edu!sei!ajpo!eberard From: eberard@ajpo.sei.cmu.edu (Edward Berard) Newsgroups: comp.object Subject: "Ad Hoc Polymorphism" -- I'm Quoting Someone Else Keywords: ad hoc polymorphism, reference to original use Message-ID: <646@ajpo.sei.cmu.edu> Date: 9 Jan 90 01:29:27 GMT Lines: 33 Jim Adcock has admonished me as follows: "Can you please choose some other descriptor rather than "ad hoc polymorphism" ??? This term is not descriptive, is being applied to a technique that is certainly *not* "ad hoc," and sounds like it is intended to be prejudicial terminology -- which I'm sure was not your intent!" I try not to invent terminology -- there is too much already. So, I try to use terms as I found them. Initially, all I had to worry about was (plain) "polymorphism." However, it quickly became apparent that there were several distinct forms of polymorphism. So I looked for terminology which seemed to be already in use to describe the different forms. In the August 1989 issue of _Computer__Language_ (Vol. 6, No. 8), there is an article by Richard P. Gabriel, titled "Using the Common LISP Object System." The following paragraph is from page 77 of that article: "CLOS uses a technique called the generic function approach. Common LISP -- and most LISPs -- support ad hoc polymorphism. In ordinary polymorphism, the definition of an operation is such that it is insensitive to the types of arguments passed to it. In ad hoc polymorphism, the types of the arguments are examined and appropriate code executed." If you recognize this type of polymorphism as having a different name, and can cite two, or more, earlier references, I will consider using a different name. (Heck! I'll even take _one_ earlier reference. ;-)) -- Ed Berard (301) 353-9652