Scheme Interpreter
This is a scheme interpreter written in javascript. This means it can be run directly in the web browser.
Whever I tell someone about this project, they hear the word javascript and laugh. I encourage you to explore this language a little more; I think you'll find it has come a long way since its primitive Netscape days. The existence of of first-class functions and closures should be enough right there.
Project goals:
- Write a Scheme interpreter in a language other than Scheme
- Learn how well language translation really can be
- Show off my mad javascripting skills
What it does:
- lambdas and applications with multiple arguments
- define
- if
- call/cc
- +, -, and * of any number of arguments
- list operators: cons, car, cdr
- built-in procedures: zero?, null?, sub1, map, append
- data type: numbers, booleans, symbols, pairs
What it doesn't do
- R5RS
- Work as quick as I want it to
- Work in IE (complains about a stack overflowing, which is weird because the interpreter doesn't use a stack).
For a larger insight in how it works, take Dan Friedman's programming languages course.