What it is and the problem it solves
Lisp is a practical mathematical notation for computer programs. It solves the problem of expressing symbolic computation—like algebraic manipulation or theorem proving—in a form that machines can evaluate directly.
How it works
Lisp works by treating code as data: programs are written as nested lists, and the eval function—implemented in machine code on the IBM 704—interprets those lists directly. Homoiconicity means the language’s syntax is its own data structure.
What works
The eval function works. Implemented in machine code on the IBM 704, it produced a working interpreter from day one. Homoiconicity works: code is data, enabling self-modifying programs without syntactic indirection.
What does not
Lisp does not solve performance bottlenecks by default. The interpreter was slow until the 1962 compiler delivered a 40-fold speedup. Garbage collection existed before 1962 but was not yet integrated into a robust, automatic runtime.
What it changes
Lisp changes how programs are built: it enables metaprogramming at runtime, lets code inspect and rewrite itself, and establishes that a language can be defined entirely in terms of a few primitives plus eval.
Is it worth your time
Yes—if you work with symbolic computation, program transformation, or language design. Its mechanisms remain legible and reusable, but its runtime costs and niche abstraction limit broad applicability today.





