tweak lambda evaluator
[lambda.git] / lambda_evaluator.mdwn
index afcf926..8c3e6d5 100644 (file)
@@ -39,10 +39,10 @@ let and = \l r. l r false in
 </textarea>
 <input id="PARSE" value="Normalize" type="button">
 <noscript><p>You may not see it because you have JavaScript turned off. Uffff!</p></noscript>
-<script src="code/tokens.js"></script>
-<script src="code/parse.js"></script>
-<script src="code/lambda.js"></script>
-<script src="code/json2.js"></script>
+<script src="/code/lambda.js"></script>
+<script src="/code/tokens.js"></script>
+<script src="/code/parse.js"></script>
+<script src="/code/json2.js"></script>
 <pre id="OUTPUT">
 </pre>
 <script>
@@ -78,12 +78,15 @@ Object.prototype.error = function (message, t) {
     var parse = make_parse();
 
     function go(source) {
-        var string, tree;
+        var string, tree, expr;
         try {
             tree = parse(source);
-//             string = JSON.stringify(tree, ['key', 'name', 'message', 'value', 'arity', 'first', 'second', 'third', 'fourth'], 4);
-//             string = JSON.stringify(tree.handler(), ['key', 'name', 'message', 'value', 'arity', 'first', 'second', 'tag', 'variable', 'left', 'right', 'bound', 'body' ], 4);
-                       string = tree.handler().to_string();
+ //           string = JSON.stringify(tree, ['key', 'name', 'message', 'value', 'arity', 'first', 'second', 'third', 'fourth'], 4);
+ //           string = JSON.stringify(tree.handler(), ['key', 'name', 'message', 'value', 'arity', 'first', 'second', 'tag', 'variable', 'left', 'right', 'bound', 'body' ], 4);
+                       expr = tree.handler();
+                       string = expr.to_string() + "\n\n~~>\n\n";
+                       // string = '';
+                       // string = string + reduce(expr, false, false).to_string();
         } catch (e) {
             string = JSON.stringify(e, ['name', 'message', 'from', 'to', 'key',
                     'value', 'arity', 'first', 'second', 'third', 'fourth'], 4);
@@ -119,5 +122,4 @@ The code is based on:
 
 Improvements we hope to add soon: the ability to reduce Combinatory Logic combinators and report the result as combinators, rather than in lambda forms.
 
-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),