Recent Articles



































Type inference



         


Type inference is a feature predominant in functional programming languages such as Haskell and ML.

Type inference automatically assigns a type signature onto a function if it is not given. In a sense, the type signature is reconstructed from the compiler/interpreter's understanding of the function's subfunctions with well defined type signatures, and thus the input/output type can be ascertained.

For example, let us consider the Haskell function length, and it is defined as:

length [] = 0 length (first:rest) = 1 + length rest

From this, it is evident that the function handles lists as inputs, and the base case of this recursive function returns an integer (Haskell "Int"). So we can reliably construct a type signature

length :: [a] -> Int

Since there are no ad-hoc polymorphic subfunctions in the function definition, we can declare the function to be parametric polymorphic.





  View Live Article   This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License