# Interpreting let-one

Now that you have your `lookup`

function written we can update
the Scheem interpeter to use it for variable references. We'll
start with a minimal interpreter that can just do numbers, `+`

,
and variable references, then add support for `let-one`

.

Remember that `(let-one _var _expr _body)`

works by evaluating
`_expr`

, binding the result to `_var`

, then using that new
environment to evaluate `_body`

.

*Write a version of evalScheem that works with numbers, +,
variable references, and let-one, using the new environment
data structure. You can assume lookup is already defined.*

1:1

The syntax can get a little tricky here.
I started defining my bindings like this:

var bnds = { }; bnds[expr[1]] = ...

Then I created a new environment with those bindings:

var newenv = { bindings: bnds, outer: ... };

Then I used that `newenv`

environment to evaluate the body.