Writing a Lisp Interpreter in Go
bobappleyard.wordpress.com
bobappleyard.wordpress.com
Looking at evalExpr - http://github.com/bobappleyard/golisp/blob/master/lisp/lisp.... - the only way I can see for this to have tail call elimination is if Go itself does (and I don't think it does, does it? It does have coroutines, which you could use to implement trampolining, but I don't see that here...)
Seems like LLVM or the JVM would both make this comfortable.
EDIT: Some of us are on the other side of 30 and won't waste our eyesight on a blog by someone who thought white-on-black was kewl. Those under 30 shouldn't, either.