In
mathematics, function application is the act of applying a
function
Function or functionality may refer to:
Computing
* Function key, a type of key on computer keyboards
* Function model, a structured representation of processes in a system
* Function object or functor or functionoid, a concept of object-oriente ...
to an argument from its
domain
Domain may refer to:
Mathematics
*Domain of a function, the set of input values for which the (total) function is defined
**Domain of definition of a partial function
**Natural domain of a partial function
**Domain of holomorphy of a function
* Do ...
so as to obtain the corresponding value from its
range
Range may refer to:
Geography
* Range (geographic), a chain of hills or mountains; a somewhat linear, complex mountainous or hilly area (cordillera, sierra)
** Mountain range, a group of mountains bordered by lowlands
* Range, a term used to i ...
. In this sense, function application can be thought of as the opposite of function
abstraction.
Representation
Function application is usually depicted by juxtaposing the variable representing the function with its argument encompassed in
parentheses
A bracket is either of two tall fore- or back-facing punctuation marks commonly used to isolate a segment of text or data from its surroundings. Typically deployed in symmetric pairs, an individual bracket may be identified as a 'left' or 'r ...
. For example, the following expression represents the application of the function ''ƒ'' to its argument ''x''.
:
In some instances, a different notation is used where the parentheses aren't required, and function application can be expressed just by
juxtaposition
Juxtaposition is an act or instance of placing two elements close together or side by side. This is often done in order to compare/contrast the two, to show similarities or differences, etc.
Speech
Juxtaposition in literary terms is the showin ...
. For example, the following expression can be considered the same as the previous one:
:
The latter notation is especially useful in combination with the
currying isomorphism. Given a function
, its application is represented as
by the former notation and
(or
with the argument
written with the less common angle brackets) by the latter. However, functions in curried form
can be represented by juxtaposing their arguments:
, rather than
. This relies on function application being
left-associative
In programming language theory, the associativity of an operator is a property that determines how operators of the same precedence are grouped in the absence of parentheses. If an operand is both preceded and followed by operators (for exampl ...
.
As an operator
Function application can be trivially defined as an
operator, called
apply or
, by the following definition:
:
The operator may also be denoted by a
backtick (`).
If the operator is understood to be of
low precedence and
right-associative
In programming language theory, the associativity of an operator is a property that determines how operators of the same precedence are grouped in the absence of parentheses. If an operand is both preceded and followed by operators (for exampl ...
, the application operator can be used to cut down on the number of parentheses needed in an expression. For example;
:
can be rewritten as:
:
However, this is perhaps more clearly expressed by using
function composition instead:
:
or even:
:
if one considers
to be a
constant function returning
.
Other instances
Function application in the
lambda calculus is expressed by
β-reduction
Lambda calculus (also written as ''λ''-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation ...
.
The
Curry–Howard correspondence relates function application to the logical rule of
modus ponens.
See also
*
Polish notation
Polish notation (PN), also known as normal Polish notation (NPN), Łukasiewicz notation, Warsaw notation, Polish prefix notation or simply prefix notation, is a mathematical notation in which operators ''precede'' their operands, in contrast ...
Functions and mappings
{{mathanalysis-stub