.. _RecursiveFunctions: .. 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 Recursive Functions =================== RP 19 Part 1 ------------ This problem will give you practice with fixed-point combinators. To reduce syntactic clutter in this problem, we will take some shortcuts in writing :math:`\lambda` expressions. First, we will drop all but the first :math:`\lambda` and all but the last dot for (curried) functions with two or more parameters. So, for example, we will use: .. math:: \lambda abcd.E as an abbreviation for: .. math:: \lambda a.\!\lambda b.\!\lambda c.\!\lambda d.E Second, to cut down on parentheses, we will use :math:`(u\ v\ w\ x\ y\ z)` as an abbreviation for :math:`(((((u\ v)\ w)\ x)\ y)\ z)`. In essence, we are making function application left-associative. **This notation is to be used only for this review problem. Do NOT use it for any assignments, exams, or other review problems.** .. avembed:: Exercises/PL/RP19part1.html ka :module: RecursiveFunctions :points: 1.0 :required: True :threshold: 5.0 :exer_opts: JXOP-debug=true&JOP-lang=en&JXOP-code=java :long_name: RP set #19, question #1