Original ↗
Technology
What Made Lisp Different
paulgraham.com
Technology
3 min read → 55 sec
Lisp differed from Fortran by introducing nine ideas, from conditionals and recursion to macros and runtime compilation. Many later languages adopted the first set of ideas, while Lisp's code-as-tree model remains distinctive.
Lisp introduced nine ideas that reshaped programming.
Conditionals, first-class functions, recursion, and garbage collection spread widely. Tree syntax and read-compile-run unity mostly stayed Lisp's.
02 / 18
McCarthy invented conditionals while developing Lisp.
He then got them into Algol and later languages.
03 / 18
Fortran had only a conditional goto.
It closely modeled hardware branch instructions.
04 / 18
Lisp treated functions as a data type.
Functions had literals, variables, and argument passing.
05 / 18
Lisp was the first programming language to support recursion.
06 / 18
In Lisp, values have types.
Variables effectively hold pointers to values.
07 / 18
Fortran split expressions from statements.
Its punched-card, line-oriented form could not nest statements.
08 / 18
Block-structured languages removed that limit.
Fortran and Algol had already entrenched the expression-statement split.
09 / 18
Lisp made programs fully composable.
Its code trees are expressions that always return values.
10 / 18
When everything is an expression, conditionals and assignments compose in either direction.
11 / 18
Symbols are not strings.
Symbol equality can be tested by comparing a pointer.
12 / 18
Running code at compile-time enables macros.
Compiling at runtime enables extension languages like Emacs.
13 / 18
Reading at runtime lets programs communicate with s-expressions.
That idea was later reinvented as XML.
14 / 18
These Lisp ideas are now widespread.
01
Conditionals spread widely.
02
First-class functions spread widely.
03
Recursion spread widely.
04
Pointer-like variables spread widely.
05
Garbage collection spread widely.
15 / 18
Expression-only programs are entering the mainstream.
16 / 18
Tree syntax and read-compile-run unity remain largely unique to Lisp.
17 / 18
Read the full source
What Made Lisp Different
paulgraham.com
18 / 18
Carouse
Turn any article, video, or podcast into a carousel you can browse in 30 seconds.
Carouse any link