switched to only Chris' lambda calculator
authorJim Pryor <profjim@jimpryor.net>
Mon, 20 Sep 2010 19:40:17 +0000 (15:40 -0400)
committerJim Pryor <profjim@jimpryor.net>
Mon, 20 Sep 2010 19:40:17 +0000 (15:40 -0400)
Signed-off-by: Jim Pryor <profjim@jimpryor.net>
assignment2.mdwn
index.mdwn
lambda-let.html

index 85f63f3..648ef21 100644 (file)
@@ -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
 
 
 More Lambda Practice
index 2bb5e4b..aeb0564 100644 (file)
@@ -22,11 +22,10 @@ Lots of lecture notes summarizing and expanding on last Monday's seminar now pos
 
 [[Assignment2]]
 
 
 [[Assignment2]]
 
+[Lambda Calculator](/lambda-let.html)
 
 ##[[Notes and Schedule]]##
 
 
 ##[[Notes and Schedule]]##
 
-[[Using the programming languages]]
-
 
 ##[[Offsite Reading]]##
 
 
 ##[[Offsite Reading]]##
 
index fd8dece..c5e1a64 100644 (file)
@@ -5,6 +5,7 @@
 </head>
 <body>
 
 </head>
 <body>
 
+
 Try clicking on the "Reduce" button: <center><form> 
 <textarea cols="80" rows="20" name=input>
 let true = (\x (\y x)) in
 Try clicking on the "Reduce" button: <center><form> 
 <textarea cols="80" rows="20" name=input>
 let true = (\x (\y x)) in
@@ -30,5 +31,12 @@ let and = (\l (\r ((l r) false))) in
 <textarea cols="80" rows="10" name=result></textarea>
 </form> </center> 
 
 <textarea cols="80" rows="10" name=result></textarea>
 </form> </center> 
 
+<p>
+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))`.
+<p>
+The parser treats symbols that haven't yet been bound (as `yes` and `no` in the example above) as free variables.
+<p>
+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.
+
 </body>
 </html>
 </body>
 </html>