X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=code%2Funtyped_evaluator_complete.ml;h=c3cafc35d37dca3aaa83e2e76a64572a805e79da;hp=930491f1defa8c9871361fdc7964b97daa1f66c7;hb=a13c98f96217650e2404b044ea2d380a0dbc8bb9;hpb=fd72a947c60f0178c7464b68b922b72ffe530bf7 diff --git a/code/untyped_evaluator_complete.ml b/code/untyped_evaluator_complete.ml index 930491f1..c3cafc35 100644 --- a/code/untyped_evaluator_complete.ml +++ b/code/untyped_evaluator_complete.ml @@ -1,5 +1,5 @@ (* - This is a simplified version of the code at ... + This is a simplified version of the code at http://lambda.jimpryor.net/code/untyped_full.tgz You can use this code as follows: 1. First, use a text editor to fill in the (* COMPLETE THIS *) portions. @@ -15,7 +15,7 @@ `reduce (App(Lambda("x",Var "x"),Lambda("y",Var "y")))` `evaluate (App(Lambda("x",Var "x"),Lambda("y",Var "y")))` - The two interpreters presented below are (VersionA) a substitute-and-replace + The two interpreters presented below are (VersionA) a substitute-and-repeat interpreter, and (VersionB) an environment-based interpreter. We discuss the differences between these in the course notes. @@ -72,7 +72,7 @@ let rec lookup (sought_ident : ident) (env : env) : term option = eval raises this exception when it fails to reduce/evaluate a term, because it has components for which no reduction/evaluation is defined, such as `x y`. The - reduction-based interpreter just signals this with a normal + substitute-and-repeat interpreter just signals this with a normal return value; but the environment-based interpreter uses an exception to abort prematurely.