Defer Substitution

In lecture, I've discussed differed substitution. Or, if you prefer, I transformed the interpreter from class into an environment-passing interpreter. You should begin by transforming your interpreter into an environment-passing interpreter, thus getting rid of subst

You may start with the code from class, but it makes use of match, map, and foldl in a number of places. I would not use this interpreter unless you fully understand what it is doing. (That was intentional on my part. If you want to use that code, you need to demonstrate that you know how to use it.)

So, your first step: implement deferred substitution.