parametric polymorphism

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)
    

[email protected]