Alpha conversion

From HaskellWiki
Revision as of 13:01, 30 January 2007 by MathematicalOrchid (talk | contribs) (Added throwaway remark about usage.)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

An alpha conversion (also written α conversion) is a renaming 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.