A general purpose programming language that allows for direct AST manipulation. Interpreted Multi-Paradigm LISP will teach you how to program better. Implementations Common LISP