Question: Problem 3: The only thing we can do in the lambda calculus is define functions. Therefore, data types such as booleans, integers, or anything else

 Problem 3: The only thing we can do in the lambda

Problem 3: The only thing we can do in the lambda calculus is define functions. Therefore, data types such as booleans, integers, or anything else are encoded into particular choices of functions. Any choice of encoding is possible, but for the data types to work, we need to be able to define operations that do the things we would normally expect to be able to do with that data type. The following is how boolean values are typically encoded in the lambda calculus: T = (axy.x) F= (axy.y) Here is a definition of the boolean function NOT: (ax.x(huv.v)(hab.a)) (a): Write the lambda expression for NOT F. (Write the expression that would compute NOT F, not the result of the computation.) (b): Show step-by-step how the term for NOT F that you gave in (a) reduces. Hint: It should reduce to a lambda expression equivalent to T! (c): Why does this definition of NOT work? Hint: It may be useful to notice that NOT = (2x.x(Auv.v)(hab.a)) = (2x.xFT)

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!