Followup Resources

Some of these are the same from last week. They're that good.


Norvig's lispy is a great reference implementation of a tiny Lisp in Python. There is also a bigger one. Look through his implementation, see what's the same and different compared to your Scheem implementation. If you see a way to improve your Scheem implementation, improve it.


When writing an interpreter it's helpful if you have a reference implementation. BiwaScheme is convenient for quick tests because it runs in the browser.


Keep reading Structure and Interpretation of Computer Programs by Abelson, Sussman, and Sussman. The full text is online!


Determining how environments work, how to determine which variables refer to which values, is called scoping. Wikipedia:Scope has an overview. Scheme and JavaScript have lexical scoping; investigate dynamic scope and what that means.