This article covers mathematics. Other uses of the word function include:
 In sociology, social functions are the basis of functionalism.
 In computer science, a function is a subprogram or subroutine, commonly one intended to directly return a value to its caller. See also functional programming.
The concept of function is fundamental in mathematics and the sciences. The words "function", "mapping", "map" and "transformation" are usually considered synonymous. Functions whose arguments are natural numbers are better known as sequences.
Introduction
Intuitively, a function is a way to assign to each value of the argument x a unique value of the function f(x). This could be specified by a formula, a relationship, and/or a rule. This concept is deterministic, always producing the same result or output from the same input. A function may be thought of as a "machine" or "black box" converting valid input into a unique output.
The most familiar kind of function is that where the argument and the function's value are both numbers, and the functional relationship is expressed by a formula, and the value of the function is obtained from the arguments by direct substitution. Consider for example
A straightforward generalization is to allow functions depending not on a single number, but on several. For instance,
In the sciences, we often encounter functions that are not given by (known) formulas. Consider for instance the temperature distribution on Earth over time: this is a function which takes location and time as arguments and gives as output the temperature at that location at that time.
We have seen that the intuitive notion of function is not limited to computations using single numbers and not even limited to computations; the mathematical notion of function is still more general and is not limited to situations involving numbers. Rather, a function links a "domain" (set of inputs) to a "codomain" (set of possible outputs) in such a way that to every element of the domain is associated precisely one element of the codomain. Functions are abstractly defined as certain relations, as will be seen below. Because of this generality, functions appear in a wide variety of mathematical contexts, and several mathematical fields are based on the study of functions.
History
As a mathematical term, "function" was coined by Leibniz in 1694, to describe a quantity related to a curve; such as a curve's slope or a specific point of said curve. Functions related to curves are nowaday called differentiable functions and are still the most frequently type of functions encounted by nonmathematicians. For such kind of functions, one can talk about limits and derivatives; both are measurements of the change of output values associated to a change of input values, and they are the basics of calculus.
The word function was later used by Euler during the mid18th Century to describe an expression or formula involving various arguments; ie: y = F(x).
During the 19th Century, mathematicians started to formalize all the different branches of mathematics. Weierstrass advocated building calculus on arithmetic rather than on geometry, which favoured Euler's definition over Leibniz's (see arithmetization of analysis).
By broadening the definition of functions, mathematicians were then able to study "strange" mathematical objects such as functions which are nowhere differentiable. Those functions, first thought as purely imaginary and called collectively "monsters" as late as the turn of the 20th century, were later found to be important in the modelling of physical phenomena such as Brownian motion.
Towards the end of the 19th century, mathematicians started trying to formalize all of mathematics using set theory and they sought definitions of every mathematical object as a set. It was Dirichlet that gave the modern "formal" definition of function (see #Formal Definition below).
In Dirichlet's definition, a function is a special case of a relation. In most cases of practical interest, however, the differences between the modern definition and Euler's definition are negligible.
Formal Definition
Formally, a function f from a set X of input values to a set Y of possibly output values (written as f: X → Y) is a relation between X and Y which satisfies:
 f is functional: if x f y (x is frelated to y) and x f z, then y = z. i.e., for each input value, there should only be one possible output value.
 f is total: for all x in X, there exists a y in Y such that x f y. i.e. for each input value, the formula should produce at least one output value within Y.
Consider the following three examples:
This is not a "welldefined" function; because, the element 3, in X, is associated with two elements b and c in Y (Condition 1 is violated). This is a multivalued function.  
This is not a "welldefined" function; because, the element 1, in X , is associated with nothing (Condition 2 is violated). This is a partial function.  
This is a function, called a discrete function (or rarely piecewise function); of which the range is {a,c,d}. It can be stated explicitly as

Occasionally, all three relations above are called functions. In this case, the function satisfies Conditions (1) and (2) is said to be a "welldefined function" or "total function". In this encyclopedia, the terms "welldefined function", "total function" and "function" are synonymous.
Domains, Codomains, and Ranges
X, the set of input values, is called the domain of f and Y, the set of possible output values, is called the codomain. The range of f is the set of all actual outputs {f(x) : x in the domain}. Beware that sometimes the codomain is wrongly called the range because of a failure to distinguish between possible and actual values.
In computer science, the datatypes of the arguments and return values specify the domain and codomain (respectively) of a subprogram. So the domain and codomain are constraints imposed initially on a function; on the other hand the range has to do with how things turn out in practice.
Graph of a functions
The graph of a function f is the collection of all points(x, f(x)), for all x in set X. In the example of the discrete function, the graph of f is {(1,a),(2,d),(3,c)}. There are theorems formulated or proved most easily in terms of the graph, such as the closed graph theorem.
If X and Y are real lines, then this definition coincides with the familiar sense of graph. Below is the graph of a cubic function:
Note that since a relation on the two sets X and Y is usually formalized as a subset of X×Y, the formal definition of function actually identifies the function f with its graph.
Images and preimages
The image of an element x∈X under f is the output f(x).
The image of a subset A⊂X under f is the subset of Y defined by
Notice that the range of f is the image f(X) of its domain. In our example of discrete function, the image of {2,3} under f is f({2,3})={c,d} and the range of f is {a,c,d}.The preimage (or inverse image) of a set B ⊂ Y under f is the subset of X defined by
 f^{ −1}(B) := {x in X : f(x)∈B}.
Note that with this definiton, f^{ 1} becomes a function whose domain is the set of all subsets of Y (also known as the power set of Y) and whose codomain is the power set of X'.
Some consequences that follow immediately from these definitions are:
 f(A_{1} ∪ A_{2}) = f(A_{1}) ∪ f(A_{2}).
 f(A_{1} ∩ A_{2}) ⊆ f(A_{1}) ∩ f(A_{2}).
 f^{ −1}(B_{1} ∪ B_{2}) = f^{ −1}(B_{1}) ∪ f^{ −1}(B_{2}).
 f^{ −1}(B_{1} ∩ B_{2}) = f^{ −1}(B_{1}) ∩ f^{ −1}(B_{2}).
 f(f^{ −1}(B)) ⊆ B.
 f^{ −1}(f(A)) ⊇ A.
Injective, surjective and bijective functions
Several types of functions are very useful, deserve special names:
 injective (onetoone) functions send different arguments to different values; in other words, if x and y are members of the domain of f, then f(x) = f(y) if and only if x = y. Our example is an injective function.
 surjective (onto) functions have their range equal to their codomain; in other words, if y is any member of the codomain of f, then there exists at least one x such that f(x) = y.
 bijective functions are both injective and surjective; they are often used to show that the sets X and Y are "the same" in some sense.
Examples of functions
(More can be found at List of functions.)
 The relation wght between persons in the United States and their weights.
 The relation between nations and their capitals.
 The relation sqr between natural numbers n and their squares n^{2}.
 The relation ln between positive real numbers x and their natural logarithms ln(x). Note that the relation between real numbers and their natural logarithms is not a function because not every real number has a natural logarithm; that is, this relation is not total and is therefore only a partial function.
 The relation dist between points in the plane R^{2} and their distances from the origin (0,0).
 The relation grav between a point in the punctured plane R^{2} \\ {(0,0)} and the vector describing the gravitational force that a certain mass at that point would experience from a certain other mass at the origin (0,0).
nary function: function of several variables
If the domain of a function is a subset of the Cartesian product of n sets then the function is called an nary function. For example, the relation dist has the domain R × R and is therefore a binary function. In that case dist((x,y)) is simply written as dist(x,y).
Another name applied to some types of functions of several variables is operation. In abstract algebra, operators such as "*" are defined as binary functions; when we write a formula such as x*y in this context, we are implicitly invoking the function *(x,y), but writing it in a convenient infix notation.
An important theoretical paradigm, functional programming, takes the function concept as central. In that setting, the handling of functions of several variables becomes an operational matter, for which the lambda calculus provides the basic syntax. The composition of functions (see under composing functions immediately below) becomes a question of explicit forms of substitution, as used in the substitution rule of calculus. In particular, a formalism called currying can be used to reduce nary functions to functions of a single variable.
Composing functions
If Y⊂X then f may compose with itself; this is sometimes denoted f^{ 2}. (Do not confuse it with the notation commonly seen in trigonometry.) The functional powers f of^{ n} = f^{ n} o f = f^{ n+1} for natural n follow immediately. On their heels comes the idea of functional root; given f and n, find a g such that g^{n}=f. (Feynman illustrated practical use of functional roots in one of his anecdotal books. <which?> Tasked with building an analogue arctan computer and finding its parts overstressed, he instead designed a machine for a functional root <fifth?> of arctan and chained enough copies to make the arctan machine.)
Inverse function
If a function f:X→Y is bijective then preimages of any element y in the codomain Y is a singleton. A function taking y∈Y to its preimage f^{−1}(y) is a welldefined function called the inverse of f and is denoted by f^{−1}.An example of an inverse function, for f(x) = x^{2}, is f(x)^{−1} = √x. Likewise, the inverse of 2x is x/2. The inverse function is the function that "undoes" its original. See also inverse image.
Pointwise operations
If f: X → R and g: X → R are functions with common domain X and codomain is a ring R, then one can define the sum function f + g: X → R and the product function f × g: X → R as follows:
 (f + g)(x) := f(x) + g(x);
 (f × g)(x) := f(x) × g(x);
This turns the set of all such functions into a ring. The binary operations in that ring have as domain ordered pairs of functions, and as codomain functions. This is an example of climbing up in abstraction, to functions of more complex types.
By taking some other algebraic structure A in the place of R, we can turn the set of all functions from X to A into an algebraic structure of the same type in an analogous way.
Computable and noncomputable functions
The number of computable functions from integers to integers is countable, because number of possible algorithms is. The number of all functions from integers to integers is higher: the same as the cardinality of the real numbers. This argument shows that there are functions from integers to integers that are not computable. For examples of noncomputable functions, see the articles on the halting problem and Rice's theorem.
References
 Visual Calculus by Lawrence S. Husch, University of Tennessee (2001)
External links
 The Wolfram Functions Site, a compendium of formulae for and visualizations of mathematical functions