Merge branch 'pryor'
authorJim Pryor <profjim@jimpryor.net>
Mon, 20 Sep 2010 19:40:22 +0000 (15:40 -0400)
committerJim Pryor <profjim@jimpryor.net>
Mon, 20 Sep 2010 19:40:22 +0000 (15:40 -0400)
1  2 
assignment2.mdwn
index.mdwn

diff --combined assignment2.mdwn
@@@ -1,4 -1,4 +1,4 @@@
- For these assignments, you'll probably want to use a "lambda calculator" to check your work. This accepts any grammatical lambda expression and reduces it to normal form, when possible. See the page on [[using the programming languages]] for instructions and links about setting this up.
+ For these assignments, you'll probably want to use a "lambda calculator" to check your work. This accepts any grammatical lambda expression and reduces it to normal form, when possible. See our [lambda-let page](/lambda-let.html), based on Chris Barker's JavaScript lambda calculator and [Oleg Kiselyov's Haskell lambda calculator](http://okmij.org/ftp/Computation/lambda-calc.html#lambda-calculator-haskell).
  
  
  More Lambda Practice
@@@ -33,36 -33,6 +33,36 @@@ Reduce to beta-normal forms
  <LI>`(\x y z. x z (y z)) (\u v. u)`
  </OL>
  
 +Combinatory Logic
 +-----------------
 +
 +Reduce the following forms, if possible:
 +
 +<OL start=16>
 +<LI> `Kxy`
 +<LI> `KKxy`
 +<LI> `KKKxy`
 +<LI> `SKKxy`
 +<LI> `SIII`
 +<LI> `SII(SII)`
 +
 +<LI> Give Combinatory Logic combinators that behave like our boolean functions.
 +  You'll need combinators for `true`, `false`, `neg`, `and`, `or`, and `xor`.
 +</OL>
 +
 +Using the mapping specified in the lecture notes,
 +translate the following lambda terms into combinatory logic:
 +
 +<OL start=23>
 +<LI> `\x.x`
 +<LI> `\xy.x`
 +<LI> `\xy.y`
 +<LI> `\xy.yx`
 +<LI> `\x.xx`
 +<LI> `\xyz.x(yz)`
 +<LI> For each translation, how many I's are there?  Give a rule for 
 +   describing what each I corresponds to in the original lambda term.
 +</OL>
  
  Lists and Numbers
  -----------------
diff --combined index.mdwn
@@@ -16,20 -16,16 +16,19 @@@ Student sessions will be held on Tuesda
  
  Lots of lecture notes summarizing and expanding on last Monday's seminar now posted. Also, lecture notes for upcoming session have been posted. (Click "Notes and Schedule".)
  
 -## Assignments ##
 +## Lecture Notes and Assignments ##
  
 -[[Assignment1]]
 +Lecture notes for [[Week1]]; [[Assignment1]].
  
 -[[Assignment2]]
 +Lecture notes for [[Week2]]; [[Assignment2]].
 +
 +There is now a [lambda evaluator](lambda-let.html) you can use in your browser (no need to install any software).
 +It can help you check whether your answer to some of the homework questions works correctly.
  
+ [Lambda Calculator](/lambda-let.html)
  
  ##[[Notes and Schedule]]##
  
- [[Using the programming languages]]
  
  ##[[Offsite Reading]]##