LISP, as it was named in the 50s, stands for List Programming. This reflects the fact that everything is a list in Lisp, code and data included. Some people will argue that this is not true, but in fact it is: every value is either a proper list (either a pair whose CDR is a proper list or the null list), a circular list (a pair whose CDR is a circular list), or a dotted list (either a pair whose CDR is a dotted list or neither a pair nor the null list). All values in any Lisp fall into these three categories.
[Bzzzzt! Not every structure in Lisp is constructed out of lists. It has NEVER been this way, not even in the 50's. Furthermore, modern Lisps have a very rich set of first class objects including structures, conditions, packages, symbols, functions, objects, conditions, arrays, strings, filenames, streams, and more. None of these listed are built out of lists. -- AndrewKuehn]
Bzzzzt! Not only are you using bad terminology ('constructed out of lists' -- you probably meant 'pairs'), but also, you didn't read what I said: I did not say that every value in Lisp was constructed out of pairs, but rather that every value in Lisp falls into one of the three kinds of 'lists.' All those values you mentioned are dotted lists, though they are not constructed out of pairs.
[No, I meant lists. not pairs. In Common Lisp (as well as Emacs Lisp, IIRC), the type LIST is a union of CONS and NULL. That means that every null, proper, circular, and dotted list is of type LIST. And guess what? None of the types I mentioned above are constructed out of lists. Perhaps things are different in scheme, but scheme isn't the most... ah, lispy lisp, IMHO -- AndrewKuehn]
<circular-list> ::= (cons <value> <circular-list>) <proper-list> ::= () | (cons <value> <proper-list>) <dotted-list> ::= <nonnull-value> | (cons <value> <dotted-list>)
The definition of dotted lists is not the same in every Lisp. Common Lisp, for example defines dotted lists as "a list which has a terminating atom that is not nil. (An atom by itself is not a dotted list, however.)" (http://www.lispworks.com/reference/HyperSpec/Body/26_glo_d.htm#dotted_list). FWIW, (and correct me if I'm wrong on this), R5RS Scheme doesn't bother to define dotted lists at all. Thus, you cannot simply come up with a definition of something and say it is true in `Lisp', because it only applies to specific dialects and implementations -- AndrewKuehn
