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 V1 and V2, (fst ((mkpair V1) V2)) reduces to V1 in six function-call steps.
Last update: Friday, February 6th, 2004mflatt@cs.utah.edu |