week9 tweak
[lambda.git] / week9.mdwn
index 568fc81..21a64c5 100644 (file)
@@ -291,7 +291,11 @@ Now we're going to relativize our interpretations not only to the assignment fun
 
 >      \[[expression]]<sub>g s</sub> = (value, s')
 
-For expressions we already know how to interpret, `s'` will usually just be `s`. One exception is complex expressions like `let var = expr1 in expr2`. Part of interpreting this will be to interpret the sub-expression `expr1`, and we have to allow that in doing that, the store may have already been updated. We want to use that possibly updated store when interpreting `expr2`. Like this:
+For expressions we already know how to interpret, expect `s'` to just be `s`.
+An exception is complex expressions like `let var = expr1 in expr2`. Part of
+interpreting this will be to interpret the sub-expression `expr1`, and we have
+to allow that in doing that, the store may have already been updated. We want
+to use that possibly updated store when interpreting `expr2`. Like this:
 
        let rec eval expression g s =
                match expression with
@@ -385,7 +389,7 @@ This brings up an interesting conceptual distinction. Formerly, we'd naturally t
 
 To handle implicit-style mutation, we'll need to re-implement the way we interpret expressions like `x` and `let x = expr1 in expr2`. We will also have just one new syntactic form, `change x to expr1 then expr2`.
 
-Here's how to implement these. We'll suppose that our assignment function is list of pairs, as in [week7](/reader_monad_for_variable_binding).
+Here's how to implement these. We'll suppose that our assignment function is list of pairs, as above and as in [week7](/reader_monad_for_variable_binding).
 
        let rec eval expression g s =
                match expression with