

Then in the body x + 1, x will be replaced by 2.First parameter name x and the => operator are ditched.For example, in C#, when applying this function x => x + 1 with argument 2:
ALPHA REDUCTION IN LAMBDA CALCULUS FREE
β-reduction / beta-reductionīeta-reduction of ((λV.E) R) is E, which means to substitute all free occurrences of the variable V in the expression E with expression R. Apparently it has nothing to do with the outer x. In the above example of λx.y (λx.z x), the inner lambda expression λx.z x can be alpha-converted to λa.z a. This is also a perfectly nature normal thing, just like in C# function or lambda expression’s parameter can be renamed freely. This is called alpha-conversion, or alpha-renaming. In lambda calculus, lambda expression’s bound variables can be renamed. In lambda calculus, there are 3 ways that lambda expressions can be reduced. Lambda expression without free variables are called closed lambda expression, or combinator, which will be discussed later. Here alpha-conversion is used, which will be explained later. now clearly the single occurrence of xx is bound by the second lambda. This lambda expression must be rewritten as x => y(a => z(a)).


If x is a variable and E ∈ Λ, then (λx.E) ∈ Λ (called a lambda abstraction, which defines a anonymous function).In lambda calculus, the set of lambda expressions Λ, can be defined recursively: Parentheses (), meaning higher precedence.For example, the C# lambda expression x => x + 1 will be λx.x + 1 in lambda calculus, except the C# specific type system (Int32, Int 64, …) does not exist in λx.x + 1.The abstraction symbols lambda (λ) and dot (.).In lambda calculus, the syntax of lambda expressions are: This post will explain lambda expression and other concepts in lambda calculus. The C# lambda expression has been discussed in detail.
