Chapter 5
Program Structure

 5.1 Forms
  5.1.1 Self-Evaluating Forms
  5.1.2 Variables
  5.1.3 Special Operators
  5.1.4 Macros
  5.1.5 Function Calls
 5.2 Functions
  5.2.1 Named Functions
  5.2.2 Lambda-Expressions
 5.3 Top-Level Forms
  5.3.1 Defining Named Functions
  5.3.2 Declaring Global Variables and Named Constants
  5.3.3 Control of Time of Evaluation

In chapter 2 the syntax was sketched for notating data objects in Common Lisp. The same syntax is used for notating programs because all Common Lisp programs have a representation as Common Lisp data objects.

Lisp programs are organized as forms and functions. Forms are evaluated (relative to some context) to produce values and side effects. Functions are invoked by applying them to arguments. The most important kind of form performs a function call; conversely, a function performs computation by evaluating forms.

In this chapter, forms are discussed first and then functions. Finally, certain “top level” special operators are discussed; the most important of these is defun, whose purpose is to define a named function.