Adder: Python with a Lisp

By John Stracke

Adder : Python :: Clojure : Java

Adder is a Lisp-1 which compiles to Python. It aims to integrate seamlessly into Python: every Adder function is a Python function, every Adder list is a Python list, etc.

Python-on-Lisp has been tried before; I think Adder has two advantages that previous attempts did not. The first is technical: Python's metaprogramming has gotten better in the past few years, which allows Adder to integrate more smoothly. The second is social: Clojure has prepared the ground for the notion of a Lisp that integrates into an existing language.

It has one bit of non-Lispy syntax: foo.bar.baz means exactly what it does in Python, and .bar.baz is a function, defined so that (.bar.baz foo) is identical to foo.bar.baz.

Adder is now released; you can get the code from Github. Documentation:

The slides from the lightning talk I gave at ILC09. Note that these are now dated; I had to start from scratch, compiling to Python instead of directly to Python bytecode (because bytecode is not stable from one version of Python to the next).

Blog

Feedback?