name change
[lambda.git] / code / lambda_evaluator.mdwn
index 4e59b7f..220f613 100644 (file)
@@ -1,7 +1,7 @@
 This lambda evaluator will allow you to write lambda terms and evaluate (that is, normalize) them, and inspect the results.
 This lambda evaluator will allow you to write lambda terms and evaluate (that is, normalize) them, and inspect the results.
-(This won't work in Racket, because Racket doesn't even try to represent the internal structure of a function in a human-readable way.)  
+(This won't work in Racket, because Racket doesn't even try to represent the internal structure of a function in a human-readable way.)
 
 
-*Lambda terms*: lambda terms are written with a backslash, thus: `((\x (\y x)) z)`.  
+*Lambda terms*: lambda terms are written with a backslash, thus: `((\x (\y x)) z)`.
 
 If you click "Normalize", the system will try to produce a normal-form lambda expression that your original term reduces to (~~>). So `((\x (\y x)) z)` reduces to `(\y z)`.
 
 
 If you click "Normalize", the system will try to produce a normal-form lambda expression that your original term reduces to (~~>). So `((\x (\y x)) z)` reduces to `(\y z)`.
 
@@ -19,7 +19,7 @@ Blank lines are fine.
 
 *Abbreviations*: In an earlier version, you couldn't use abbreviations. `\x y. y x x` had to be written `(\x (\y ((y x) x)))`. We've upgraded the parser though, so now it should be able to understand any lambda term that you can.
 
 
 *Abbreviations*: In an earlier version, you couldn't use abbreviations. `\x y. y x x` had to be written `(\x (\y ((y x) x)))`. We've upgraded the parser though, so now it should be able to understand any lambda term that you can.
 
-*Constants*: The combinators `S`, `K`, `I`, `C`, `B`, `W`, `T`, `M` (aka <code>&omega;</code>) and `L` are pre-defined to their standard values. Also, integers will automatically be converted to Church numerals. (`0` is `\s z. z`, `1` is `\s z. s z`, and so on.)
+*Constants*: The combinators `S`, `K`, `I`, `C`, `B`, `W`, `T`, `V`, `M` (aka <code>&omega;</code>) and `L` are pre-defined to their standard values. Also, integers will automatically be converted to Church numerals. (`0` is `\s z. z`, `1` is `\s z. s z`, and so on.)
 
 *Variables*: Variables must start with a letter and can continue with any sequence of letters, numbers, `_`, `-`, or `/`. They may optionally end with `?` or `!`. When the evaluator does alpha-conversion, it may change `x` into `x'` or `x''` and so on. But you should not attempt to use primed variable names yourself.
 
 
 *Variables*: Variables must start with a letter and can continue with any sequence of letters, numbers, `_`, `-`, or `/`. They may optionally end with `?` or `!`. When the evaluator does alpha-conversion, it may change `x` into `x'` or `x''` and so on. But you should not attempt to use primed variable names yourself.
 
@@ -109,12 +109,12 @@ Under the hood
 ---------------
 
 The interpreter is written in JavaScript and runs inside your browser.
 ---------------
 
 The interpreter is written in JavaScript and runs inside your browser.
-So if you decide to reduce a term that does not terminate (such as `((\x (x x)) (\x (x x)))`), it will be your 
+So if you decide to reduce a term that does not terminate (such as `((\x (x x)) (\x (x x)))`), it will be your
 browser that stops responding, not the wiki server.
 
 The main code is [here](http://lambda.jimpryor.net/code/lambda.js). Suggestions for improvements welcome.
 
 browser that stops responding, not the wiki server.
 
 The main code is [here](http://lambda.jimpryor.net/code/lambda.js). Suggestions for improvements welcome.
 
-The code is based on: 
+The code is based on:
 
 *      Chris Barker's JavaScript lambda calculator
 *      [Oleg Kiselyov's Haskell lambda calculator](http://okmij.org/ftp/Computation/lambda-calc.html#lambda-calculator-haskell).
 
 *      Chris Barker's JavaScript lambda calculator
 *      [Oleg Kiselyov's Haskell lambda calculator](http://okmij.org/ftp/Computation/lambda-calc.html#lambda-calculator-haskell).