# Alpha conversion

From HaskellWiki

An *alpha conversion* (also written *α conversion*) is a renaming of variables.

For example, suppose we have an expression such as

```
\x y -> 2*x*x + y
```

and we change this to

```
\a b -> 2*a*a + b
```

This is clearly the same function, even though it uses different variable names. This process of renaming variables is *alpha conversion*.

Note that alpha conversion is not as simple as it first seems. We must be careful to avoid *name capture*. For example, if we rename `x`

to `y`

in `\x -> x + y`

then we end up with `\y -> y + y`

, which is not the same function!

Some compilers include an alpha-conversion stage to rename all program variables such that variable names become unique. (This simplifies subsequent processing somewhat.)

Also see Lambda calculus and the wikipedia lambda calculus article.