In mathematics, and in other disciplines involving formal languages, including mathematical logic and computer science, a **free variable** is a notation (symbol) that specifies places in an expression where substitution may take place and is not a parameter of this or any container expression. Some older books use the terms **real variable** and **apparent variable** for free variable and bound variable, respectively. The idea is related to a **placeholder** (a symbol that will later be replaced by some value), or a wildcard character that stands for an unspecified symbol.

In computer programming, the term **free variable** refers to variables used in a function that are neither local variables nor parameters of that function. The term non-local variable is often a synonym in this context.

A **bound variable** is a variable that was previously *free*, but has been *bound* to a specific value or set of values called domain of discourse or universe. For example, the variable x becomes a **bound variable** when we write:

For all x, (*x* + 1)^{2} = *x*^{2} + 2*x* + 1.

or

There exists x such that *x*^{2} = 2.

In either of these propositions, it does not matter logically whether x or some other letter is used. However, it could be confusing to use the same letter again elsewhere in some compound proposition. That is, free variables become bound, and then in a sense *retire* from being available as stand-in values for other values in the creation of formulae.

The term "dummy variable" is also sometimes used for a bound variable (more often in general mathematics than in computer science), but that use can create an ambiguity with the definition of dummy variables in regression analysis.

Before stating a precise definition of **free variable** and **bound variable**, the following are some examples that perhaps make these two concepts clearer than the definition would:

In the expression

*n* is a free variable and *k* is a bound variable; consequently the value of this expression depends on the value of *n*, but there is nothing called *k* on which it could depend.

In the expression

*y* is a free variable and *x* is a bound variable; consequently the value of this expression depends on the value of *y*, but there is nothing called *x* on which it could depend.

In the expression

*x* is a free variable and *h* is a bound variable; consequently the value of this expression depends on the value of *x*, but there is nothing called *h* on which it could depend.

In the expression

- In computer programming, the term
**free variable**refers to variables used in a function that are neither local variables nor parameters of that function. The term non-local variable is often a synonym in this context.A

**bound variable**is a variable that was previously*free*, but has been*bound*to a specific value or set of values called domain of discourse or universe. For example, the variable x becomes a**bound variable**when we write:For all x, (

*x*+ 1)^{2}=*x*^{2}+ 2*x*+ 1.

or

<

There exists x such that *x*^{2} = 2.

In either of these propositions, it does not matter logically whether x or some other letter is used. However, it could be confusing to use the same letter again elsewhere in some compound proposition. That is, free variables become bound, and then in a sense *retire* from being available as stand-in values for other values in the creation of formulae.

The term "d

The term "dummy variable" is also sometimes used for a bound variable (more often in general mathematics than in computer science), but that use can create an ambiguity with the definition of dummy variables in regression analysis.

Before stating a precise definition of **free variable** and **bound variable**, the following are some examples that perhaps make these two concepts clearer than the definition would:

In the expression

*n* is a free variable and *k* is a bound variable; consequently the value of this expression depends on the value of *n*, but there is nothing called *k* on which it could depend.

In the expression