m (fixed typo; added clarification)
|Line 9:||Line 9:|
which means that the function
which means that the function accept ''any'' type of list and ''any'' type of function, '''provided''' the types match up. This makes <hask>map</hask> highly polymorphic, yet there is still no risk of a runtime type mismatch.
Revision as of 06:20, 21 May 2007
Parametric polymorphism is when a function's type signature allows various arguments to take on arbitrary types, but the types must be related to each other in some way.
For example, in Java one can write a function that accepts two arguments of any possible type. However, Haskell goes further by allowing a function to accept two arguments of any type so long as they are both the same type. For exampleAs a specific (and slightly more complicated) example, the well-known
map :: (a -> b) -> [a] -> [b]