September 22, 1999 | Perl and the Lambda Calculus | Slide #37 |

Similarly, instead of

Y =f.(x.(f(xx))x.(f(xx)))

Use

Y =f.((x.(q.f(xx))q.f(xx))

Then when we want to make a recursive call, apply to a dummy argument *Q*

For example, `R` becomes:

g.(mn.(IF (IS_ZEROm) (q.n) (q.(gQ) (PREDm) (SUCCn)))Q)

The first *Q* in there is to force the recursive call if necessary

Next | Copyright © 1999 M-J. Dominus |