![](https://csdnimg.cn/release/download_crawler_static/10855594/bg12.jpg)
2 Chapter 1: List Processing
atom, a list can be split into parts. (See Chapter 7 “car cdr & cons Fundamental
Functions”, page 73.)
In a list, atoms are separated from each other by whitespace. They can be right
next to a parenthesis.
Technically speaking, a list in Lisp consists of parentheses surrounding atoms
separated by whitespace or surrounding other lists or surrounding both atoms and
other lists. A list can have just one atom in it or have nothing in it at all. A list
with nothing in it looks like this: (), and is called the empty list. Unlike anything
else, an empty list is considered both an atom and a list at the same time.
The printed representation of both atoms and lists are called symbolic expres-
sions or, more concisely, s-expressions. The word expression by itself can refer to
either the printed representation, or to the atom or list as it is held internally in the
computer. Often, people use the term expression indiscriminately. (Also, in many
texts, the word form is used as a synonym for expression.)
Incidentally, the atoms that make up our universe were named such when they
were thought to be indivisible; but it has been found that physical atoms are not
indivisible. Parts can split off an atom or it can fission into two parts of roughly
equal size. Physical atoms were named prematurely, before their truer nature was
found. In Lisp, certain kinds of atom, such as an array, can be separated into parts;
but the mechanism for doing this is different from the mechanism for splitting a
list. As far as list operations are concerned, the atoms of a list are unsplittable.
As in English, the meanings of the component letters of a Lisp atom are different
from the meaning the letters make as a word. For example, the word for the South
American sloth, the ‘ai’, is completely different from the two words, ‘a’, and ‘i’.
There are many kinds of atom in nature but only a few in Lisp: for ex-
ample, numbers, such as 37, 511, or 1729, and symbols, such as ‘+’, ‘foo’, or
‘forward-line’. The words we have listed in the examples above are all symbols.
In everyday Lisp conversation, the word “atom” is not often used, because program-
mers usually try to be more specific about what kind of atom they are dealing with.
Lisp programming is mostly about symbols (and sometimes numbers) within lists.
(Incidentally, the preceding three word parenthetical remark is a proper list in Lisp,
since it consists of atoms, which in this case are symbols, separated by whitespace
and enclosed by parentheses, without any non-Lisp punctuation.)
Text between double quotation marks—even sentences or paragraphs—is also
an atom. Here is an example:
’(this list includes "text between quotation marks.")
In Lisp, all of the quoted text including the punctuation mark and the blank spaces
is a single atom. This kind of atom is called a string (for ‘string of characters’) and
is the sort of thing that is used for messages that a computer can print for a human
to read. Strings are a different kind of atom than numbers or symbols and are used
differently.