Close
Register
Close Window

Programming Languages

Chapter 3 Lambda Calculus

Show Source |    | About   «  3.5. The Substitution-Based Model of Evaluation   ::   Contents   ::   3.7. Reduction Strategies  »

3.6. Beta-Reduction

3.6.1. Beta-redexes

Now that we have rigorously defined substitution in the previous section, we can define a rule for evaluating a function application, which is the main operation for any \(\lambda\) calculus interpreter. This rule is called \(\beta\) reduction. An expression to which the rule can be applied is called a \(\beta\) redex (short for \(\beta\) reduction expression). So, a \(\beta\) redex is formally defined as a \(\lambda\) expression of a specific form, namely, an application in which the first term is a function abstraction. A critical part of analyzing how any language evaluates function calls is to examine its semantics from the perspective of \(\beta\) reduction.

3.6.2. Identifying Beta-redexes (1)

This randomized problem will help you identify \(\beta\)-redexes. To earn credit for it, you will have to solve it correctly three times in a row.

3.6.3. Identifying Beta-redexes (2)

This randomized problem will help you identify \(\beta\)-redexes and prepare to reduce them by determining whether an \(\alpha\)-conversion is needed. To earn credit for it, you will have to solve it correctly three times in a row.

3.6.4. Performing Beta Reductions

This randomized problem will make you practice performing \(\beta\)-reductions. To earn credit for it, you will have to solve it correctly three times in a row.

   «  3.5. The Substitution-Based Model of Evaluation   ::   Contents   ::   3.7. Reduction Strategies  »

nsf
Close Window