# Catalogue of Artificial Intelligence Techniques

View Maths as: Images | MathML

## Lisp

### Categories: Programming Languages

Author(s): Fausto Giunchiglia

Lisp (an acronym for LISt Processing) is one of the primary AI programming languages. It was defined by John McCarthy in 1958. The reasons for its success are related not only to its early development but also to its technical characteristics:

• Applicative style: pure Lisp is a functional language whose underlying ideas are directly related to Lambda Calculus. Thus, the increment function:

$ADD1=\lambda n.n+1$

can be defined in Lisp as:

$\left(DEFUNADD1\left(n\right)\left(+n1\right)\right)$

• Programs as data: programs are represented in the same data structure as other data, namely the list. A program can be manipulated as any other data structure.
The first characteristic is true only of what is called pure Lisp. All the existing different dialects of Lisp also have control structures for imperative programming. Among the most important dialects are: MACLISP (from MIT--see Winston and Horn), FRANZ LISP (a dialect of MACLISP developed at Berkeley--see Wilensky) and INTERLISP (developed by BBN and Xerox). Lately a big effort has been made to unify all the different dialects in an unique language called COMMON LISP (see Steele et. al.).

### References:

• Steele, G.L., Fahlman, S.E., Gabriel, R.P., Moon, D.A., and Weinreb, D.L. , Common Lisp: the language , Digital Press, Burlington, 1984.