30 minutes Lisp in Ruby (direct link)
gist.github.com
gist.github.com
Last time this came up: http://news.ycombinator.com/item?id=1468345
a) a special form b) a function call c) a macro
(a) and (b) are obvious, (c) means I would call the compiled macro "function" on the rest of the form and the execute compile-form on the result.
It's unhygenic and there's probably some fatal flaw I didn't catch.
How do you handle special forms? I wrote a toy Lisp interpreter in Clojure, but couldn't figure out how to implement ', which I assumed should be implemented as a special form.
PS similar deal with ` it would be expanded into a bunch of normal forms by the parser ("reader" in lisp-speak) and from there it's implemented with macros and functions, I copied Guy Steele example implementation, you can find it somewhere.
Lisp has staying power.
However the parsing is probably the easiest part so punting makes sense as you can get down to the stuff that matters and add that in later.