llisp — a toy Lisp implemented in Lua

At the moment, it's pretty minimal. Nevertheless, feel free to poke around and use as you like. All code (except pprint.lua) is mine and available via BSD 3-Clause license). I'm using pprint.lua for debugging only. Thanks to Chen Tao (jagt) for making it available.

How minimal?

Very. Here's pretty much all it can do at the moment:

  • Dead stupid REPL at (bin/repl)
  • eval simple expressions
  • define
  • lambda
  • car and cdr (aliased also to first and rest)
  • exit (for a clean shutdown of the REPL)

That said, I hope to do a lot more with it.

Actually want to use it or hack on it?

It relies on a few of my small Lua libraries both for the REPL and for the tests. If you want it actually to work, you'll need to install or copy over the following:

That's not ideal, but Lua's a very small language, and I didn't feel like copying all the relevant code just yet. I'll work out a better solution soon.


Thanks to Mary Rose Cook and Peter Norvig for all the good ideas. All the bad ideas are my own.