X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=exercises%2Fassignment2.mdwn;h=1fa697889398a124f118e722ad03d94f82eb691f;hp=098c53650b5df90382574dbdaeb3b8babb5f4b2e;hb=077b3c9d4eb81dc63a3b5cf75d4185812728e1f3;hpb=469f10232eca54fea72440d5b7e10daac42dc0e9 diff --git a/exercises/assignment2.mdwn b/exercises/assignment2.mdwn index 098c5365..1fa69788 100644 --- a/exercises/assignment2.mdwn +++ b/exercises/assignment2.mdwn @@ -34,6 +34,8 @@ Find "normal forms" for the following---that is, reduce them until no more reduc Booleans -------- +For these questions, and the ones on triples below, we're setting them up so as to encourage you to experiment with Racket and to formulate your answer in Scheme/Racket syntax. But you can answer in Lambda Calculus syntax if you prefer. + Recall our definitions of true and false. > **true** is defined to be `\t f. t` @@ -94,7 +96,7 @@ Now we can write: (t snd_of_three) ; will evaluate to 20 If you're puzzled by having the triple to the left and the function that -operates on it come second, think about why it's being done this way: the pair +operates on it come second, think about why it's being done this way: the triple is a package that takes a function for operating on its elements *as an argument*, and returns *the result of* operating on its elements with that function. In other words, the triple is a higher-order function.