From: Jim Pryor Date: Mon, 20 Sep 2010 19:40:17 +0000 (-0400) Subject: switched to only Chris' lambda calculator X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=commitdiff_plain;h=d63b0d0e1c52b50a383e419345a54e2bc6339a77;hp=af16a855a4b8fd730bbd58a2a546e2bd8affbc21 switched to only Chris' lambda calculator Signed-off-by: Jim Pryor --- diff --git a/assignment2.mdwn b/assignment2.mdwn index 85f63f36..648ef210 100644 --- a/assignment2.mdwn +++ b/assignment2.mdwn @@ -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 diff --git a/index.mdwn b/index.mdwn index 2bb5e4bb..aeb0564e 100644 --- a/index.mdwn +++ b/index.mdwn @@ -22,11 +22,10 @@ Lots of lecture notes summarizing and expanding on last Monday's seminar now pos [[Assignment2]] +[Lambda Calculator](/lambda-let.html) ##[[Notes and Schedule]]## -[[Using the programming languages]] - ##[[Offsite Reading]]## diff --git a/lambda-let.html b/lambda-let.html index fd8deceb..c5e1a640 100644 --- a/lambda-let.html +++ b/lambda-let.html @@ -5,6 +5,7 @@ + Try clicking on the "Reduce" button:
+

+Notes: you have to fully specify parentheses and separate your lambdas. So for example, you can't write `(\x y. y)`; you have to write `(\x (\y y))`. +

+The parser treats symbols that haven't yet been bound (as `yes` and `no` in the example above) as free variables. +

+If you try to evaluate a non-terminating form, like `((\x (x x)) (\x (x x)))`, you'll probably have to force-quit your browser and start over. Anything you had earlier typed in the upper box will probably be lost. +