Fix let to make recursive functions possible

![](http://i.imgur.com/BMgNSsj.gif)![](http://i.imgur.com/BMgNSsj.gif)<br>![](http://i.imgur.com/BMgNSsj.gif)![](http://i.imgur.com/BMgNSsj.gif)
...since we sometimes add to the environment, and we don't want additions to go up the scope chain as well as downwards! So, we make a copy of the scope when we add to it.