<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.karljones.com/index.php?action=history&amp;feed=atom&amp;title=Generic_programming</id>
		<title>Generic programming - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.karljones.com/index.php?action=history&amp;feed=atom&amp;title=Generic_programming"/>
		<link rel="alternate" type="text/html" href="http://wiki.karljones.com/index.php?title=Generic_programming&amp;action=history"/>
		<updated>2026-10-23T15:38:07Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>http://wiki.karljones.com/index.php?title=Generic_programming&amp;diff=17733&amp;oldid=prev</id>
		<title>Karl Jones: Created page with &quot;In computer science, '''generic programming''' is a style of computer programming in which algorithms are written in terms of types to-be-specified-later that are then...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.karljones.com/index.php?title=Generic_programming&amp;diff=17733&amp;oldid=prev"/>
				<updated>2016-09-04T14:30:20Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;In &lt;a href=&quot;/index.php/Computer_science&quot; title=&quot;Computer science&quot;&gt;computer science&lt;/a&gt;, &amp;#039;&amp;#039;&amp;#039;generic programming&amp;#039;&amp;#039;&amp;#039; is a style of &lt;a href=&quot;/index.php/Computer_programming&quot; title=&quot;Computer programming&quot;&gt;computer programming&lt;/a&gt; in which algorithms are written in terms of types to-be-specified-later that are then...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In [[computer science]], '''generic programming''' is a style of [[computer programming]] in which algorithms are written in terms of types to-be-specified-later that are then instantiated when needed for specific types provided as parameters.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
This approach, pioneered by [[ML (programming language)|ML]] in 1973, permits writing common functions or types that differ only in the set of types on which they operate when used, thus reducing duplication.&lt;br /&gt;
&lt;br /&gt;
Such software entities are known as generics in Ada, Delphi, Eiffel, Java, C#, F#, Objective-C, Swift, and Visual Basic .NET; parametric polymorphism in ML, Scala, Haskell (the Haskell community also uses the term &amp;quot;generic&amp;quot; for a related but somewhat different concept) and Julia; templates in C++ and D; and parameterized types in the influential 1994 book ''Design Patterns''.&lt;br /&gt;
&lt;br /&gt;
The authors of ''Design Patterns'' note that this technique, especially when combined with delegation, is very powerful but that &amp;quot;[dynamic], highly parameterized software is harder to understand than more static software.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The term generic programming was originally coined by [[David Musser]] and [[Alexander Stepanov]] in a more specific sense than the above, to describe a programming paradigm whereby fundamental requirements on types are abstracted from across concrete examples of algorithms and data structures and formalised as concepts, with generic functions implemented in terms of these concepts, typically using language genericity mechanisms as described above.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Partial evaluation]]&lt;br /&gt;
* [[Concept (generic programming)]]&lt;br /&gt;
* [[ML (programming language)]]&lt;br /&gt;
* [[Type polymorphism]]&lt;br /&gt;
* [[Template metaprogramming]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Generic_programming Generic programming] @ Wikipedia.org &lt;br /&gt;
&lt;br /&gt;
[[Category:Computer programming]]&lt;/div&gt;</summary>
		<author><name>Karl Jones</name></author>	</entry>

	</feed>