from
The Free On-line Dictionary of Computing (8 July 2008)
polymorphism
parametric polymorphism
polymorphic
<theory, programming> A concept first identified by
{Christopher Strachey} (1967) and developed by Hindley and
Milner, allowing {types} such as list of anything. E.g. in
{Haskell}:
length :: [a] -> Int
is a function which operates on a list of objects of any type,
a (a is a {type variable}). This is known as parametric
polymorphism. Polymorphic typing allows strong type checking
as well as generic functions. {ML} in 1976 was the first
language with polymorphic typing.
Ad-hoc polymorphism (better described as {overloading}) is the
ability to use the same syntax for objects of different types,
e.g. "+" for addition of reals and integers or "-" for unary
negation or diadic subtraction. Parametric polymorphism
allows the same object code for a function to handle arguments
of many types but overloading only reuses syntax and requires
different code to handle different types.
See also {generic type variable}.
In {object-oriented programming}, the term is used to describe
a {variable} that may refer to objects whose {class} is not
known at {compile time} and which respond at {run time}
according to the actual class of the object to which they
refer.
(2002-08-08)