/smzinjx

A toy Lisp interpreter

Primary LanguageJavaScript

Smzinjx

Toy Lisp interpreter, implementing the nine types of forms in Peter Norvig's Lispy:

  • variable references
  • literal numbers
  • quote
  • if
  • set!
  • define
  • lambda
  • begin
  • procedure calls

Runs in Node.js or the browser. For a node REPL, run node smzinjx.js. For a browser REPL, install Browserify, run make, and navigate to browser/index.html. To run tests, install jasmine-node and run jasmine-node spec.

I didn't want to think about a name for this, so I just hit random keys, hence "Smzinjx". It's pronounced just the way it looks :P

This code is released under the Creative Commons CC0 1.0 Public Domain Dedication.