.. _ReductionStrategies: .. raw:: html .. |--| unicode:: U+2013 .. en dash .. |---| unicode:: U+2014 .. em dash, trimming surrounding whitespace :trim: .. This file is part of the OpenDSA eTextbook project. See .. http://algoviz.org/OpenDSA for more details. .. Copyright (c) 2012-13 by the OpenDSA Project Contributors, and .. distributed under an MIT open source license. .. avmetadata:: :author: David Furcy and Tom Naps Reduction Strategies ==================== Applicative Order ----------------- Text forthcoming Normal Order ------------ Text forthcoming RP 17 Part 1 ------------ This problem focuses on the first step (i.e., :math:`\beta`-reduction) in the evaluation of a :math:`\lambda`-expression with the two evaluation strategies that we discussed. To get credit for this randomized exercise, you must solve it correctly three times in a row. .. avembed:: Exercises/PL/RP17part1.html ka :module: ReductionStrategies :long_name: RP set #17, question #1 :points: 1.0 :required: True :threshold: 3.0 :exer_opts: JXOP-debug=true&JOP-lang=en&JXOP-code=java_generic RP 17 Part 2 ------------ In this problem, you have to study the complete evaluation of a :math:`\lambda`-expression with the two evaluation strategies that we discussed. To get credit for this randomized exercise, you must solve it correctly three times in a row. .. avembed:: Exercises/PL/RP17part2.html ka :module: ReductionStrategies :long_name: RP set #17, question #2 :points: 1.0 :required: True :threshold: 3.0 :exer_opts: JXOP-debug=true&JOP-lang=en&JXOP-code=java_generic RP 17 Part 3 ------------ In this problem, you have to perform a full evaluation of a randomly selected :math:`\lambda` expression, that is, perform as many :math:`\beta`-reductions as it takes until a :math:`\beta`-normal form is reached. For this problem, you must use the *applicative-order* reduction strategy. To get credit for this problem, you only need to solve one problem instance correctly. However, each problem instance contains several steps that you must perform correctly (in this case, each step is a :math:`\beta`-reduction). Read and follow the directions carefully. Note that the correct answer (called the *model answer*) is available. However, if you look it up, you will not get credit for the current problem instance. To get another chance for credit, start a new problem instance by clicking the *Reset* button. .. avembed:: AV/PL/RP17part3applicativeOrderPRO.html pe :module: ReductionStrategies :long_name: Applicative-order reduction Proficiency Exercise :points: 1.0 :required: True :threshold: 0.9 :exer_opts: JOP-lang=en&strategy=applicative&JXOP-code=java_generic&JXOP-debug=true RP 17 Part 4 ------------ In this problem, you have to perform a full evaluation of a randomly selected :math:`\lambda` expression, that is, perform as many :math:`\beta`-reductions as it takes until a :math:`\beta`-normal form is reached. For this problem, you must use the **normal-order** reduction strategy. To get credit for this problem, you only need to solve one problem instance correctly. However, each problem instance contains several steps that you must perform correctly (in this case, each step is a :math:`\beta`-reduction). Read and follow the directions carefully. Note that the correct answer (called the *model answer*) is available. However, if you look it up, you will not get credit for the current problem instance. To get another chance for credit, start a new problem instance by clicking the *Reset* button. .. avembed:: AV/PL/RP17part4normalOrderPRO.html pe :module: ReductionStrategies :long_name: Normal-order reduction Proficiency Exercise :points: 1.0 :required: True :threshold: 0.9 :exer_opts: JOP-lang=en&strategy=normal&JXOP-code=java_generic&JXOP-debug=true