Let o= [a = (x)x, b = (y)y.a, c = (x)[d = (y)x.b]].Show the reduction of o.c.d.
Let o= [a = (x)(x.a:=(y)(y.a:=(z)[ ]))].Show the reduction of o.a.a.
Develop an encoding of true and false as objects with three methods: not, if, and ifnot. The if and ifnot methods should each return a binary function, relying our syntactic sugar for functions and application.The encoding must obey the following laws:
Important: Remember that true and false will just be abbreviations, so thay cannot be defined recursively, as in true= [not = (x)false, ...] and false= [not = (x)true, ...].
Optional Challenge: Define versions of true and false that provide only the methods not and if.
Last update: Tuesday, March 28th, email@example.com