**Functions take inputs, performs operations, and return an output**
The concept of a **function** is vital to math, computer programming, and engineering - but it can easily be extrapolated to cover any aspect of life. A simple definition of "function" is a thing that provides a consistent output which is wholly dependent on the set of inputs it's given.
# WIkipedia definition:
`A function is a relation between sets that associates to every element of a first set exactly one element of the second set.`
# Nomenclature & Terminology
In all domains of use, functions are sometimes named and sometimes not. Mathematical functions can be referred to by their algorithm, such as:
$
f(x) = 2x + 1
$
Well-known algorithms can be referred to by name: e.g. "The Quadratic Formula"
## Argument
The inputs to the function.
## [[Domain and Range]]
- **Domain** - the whole set of possible inputs for each argument.
- **Range** - the whole set of possible outputs.
## Arity/Degree
The number of arguments the function depends on to produce its result.
## Return
The result of a function. Its output.
# Mathematical Function
In math, unlike in coding, the term "function" carries with it the constraint that a given input will [[Maps|map]] to **exactly** one output (or be undefined).
## Vertical Line Test
The vertical line test is something you learn about in middle (?) school. You put a vertical line on a [[Line Plot]] and see if the vertical line crosses the line drawn by the calculator. If it crosses more than once, it's not a "function".
# Business Function
In business, the term "function" is sometimes used synonymously with the term "process", although they aren't the same. A business function produces a result, without necessarily implying the _method_ the result is arrived at. A business _process_ more often refers to a function and the method that implements it.
[[Archimate]] includes "function" and "process" as separate [[Entity Definition|entities]] carrying distinct meanings.
# Functional Modeling
## Mathematical Modeling
You could say that [[Line Plot]]s are models of mathematical functions.
## Systems Design
[[IDEF0]] was built to model decomposable functions. There are plenty of other ways you could model a function (e.g. [[UML]]).
****
## Source
- [[Myself]]
- Wikipedia
## Related
- [[Maps]]
- [[Pareto Principle]]
- [[Pure Function]]