History
Parametric polymorphism was first introduced to programming languages in ML in 1976. Today it exists in Standard ML, OCaml, F#, Ada, Haskell, Visual Prolog, Scala, and others. Java, C#, Visual Basic .NET and Delphi have each recently introduced "generics" for parametric polymorphism. Some implementations of type polymorphism are superficially similar to parametric polymorphism while also introducing ad-hoc aspects. One example is C++ template specialization.
The most general form of polymorphism is "higher-rank impredicative polymorphism". Two popular restrictions of this form are restricted rank polymorphism (for example, rank-1 or prenex polymorphism) and predicative polymorphism. Together, these restrictions give "predicative prenex polymorphism", which is essentially the form of polymorphism found in ML and early versions of Haskell.
Read more about this topic: Parametric Polymorphism
Famous quotes containing the word history:
“You treat world history as a mathematician does mathematics, in which nothing but laws and formulas exist, no reality, no good and evil, no time, no yesterday, no tomorrow, nothing but an eternal, shallow, mathematical present.”
—Hermann Hesse (18771962)
“The greatest horrors in the history of mankind are not due to the ambition of the Napoleons or the vengeance of the Agamemnons, but to the doctrinaire philosophers. The theories of the sentimentalist Rousseau inspired the integrity of the passionless Robespierre. The cold-blooded calculations of Karl Marx led to the judicial and business-like operations of the Cheka.”
—Aleister Crowley (18751947)
“A poets object is not to tell what actually happened but what could or would happen either probably or inevitably.... For this reason poetry is something more scientific and serious than history, because poetry tends to give general truths while history gives particular facts.”
—Aristotle (384323 B.C.)