Lisp–the list processor language–is “the greatest single programming language ever designed,” according to computer scientist Alan Kay. It was born in 1958 because John McCarthy, then an assistant professor at MIT, working on new tools for artificial-intelligence research, wanted a language in which one could write programs that would make logical inferences and deductions. Previous languages, including Fortran, were numeric, which made for powerful number-crunching. But Lisp made use of symbolic expressions, which treated both data (such as numbers) and code as objects that could be manipulated and evaluated. This enabled programmers to create conditional expressions–Lisp made possible the now-familiar “if-then-else” structure–and today Lisp is used as a “macro” language, allowing users of software such as Emacs to create their own mini-applications that can automate tasks. The text (click here), from page 13 of McCarthy’s 1962 Lisp 1.5 Programmer’s Manual, uses Lisp to define the function evalquote. For its elegance and profundity, Kay compared this piece of code to James Clerk Maxwell’s four equations describing electricity and magnetism.
“Lisp was a piece of theory that unexpectedly got turned into a programming language,” wrote Paul Graham in his 2004 book Hackers and Painters. McCarthy’s exploration of how to think about problems and how to create methods for solving them resulted in a computer language that has endured for five decades and changed the nature of computer programming. Church’s Thesis–a central tenet of computation theory, named for the mathematician Alonzo Church–proposes that any possible calculation can, given enough time and computing power, be performed by a recursive function. Steele contends that “Lisp is the practical application of Church’s Thesis.”