User:Johnsmith0508/sandbox

In programing, polymorphism is the concept of having one interface that applies to different data types. There are three main types of polymorphism:
 * Ad hoc polymorphism: when one function has multiple ways of being called. Many programing languages support Ad hoc polymorphism with function overloading
 * Parametric polymorphism: when code doesn't mention any types, and thus can be used with any type. in object oriented programing this is called generic programing, and in functional programing it is referred to simply as polymorphism.
 * Subtype polymorphism: when one name refers to multiple items that are somehow related. In object oriented programing this is called polymorphism

Ad hoc polymorphism
Ad hoc polymorphism (or function overloading) is the the idea that you can have one function that accepts different types of inputs. "ad hoc" does not refer to it's use, but instead the fact that it is not a main feature. The following Pseudocode provides an example use of ad hoc polymorphism:

Parametric polymorphism
//NOOP