Just as functions can encode `true` and `false`, they can also encode pairs. The following are abbreviations for `mkpair`, `fst`, and `snd`, which constructs pairs, extracts the first element, and extracts the second element, respectively:

mkpair = (lambda x . (lambda y . (lambda s . ((s x) y)))) fst = (lambda p . (p (lambda x . (lambda y . x)))) snd = (lambda p . (p (lambda x . (lambda y . y))))

Show that, for any values `V _{1}` and

Last update: Friday, February 6th, 2004mflatt@cs.utah.edu |