Fundamentals of LISP

Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I

This is it, the grand-daddy of all academic papers on LISP. To call this the seminal work is a bit of an understatement. It is here, in 1960, that John McCarthy lays out the fundamentals of S-expressions, their less-famous cousins, M-expressions, and works through the axioms of the LISP programming language / system, including the novel adaptation of the untyped λ-calculus.

One small historical note: the terms open subroutine and closed subroutine are almost unknown today, but they show up in this paper. I'll save you the Google search: an open subroutine is one whose code can be copied in at the call site, whereas a closed subroutine must be branched to (and back). You can inline an open subroutine, but you have to call a closed subroutine.

James Hunt (the avatar)

James (@iamjameshunt) works on the Internet, spends his weekends developing new and interesting bits of software and his nights trying to make sense of research papers.