language. As I recall, CAR, CDR, CONS, and four or
five more operators
is all that is necessary for a complete implementation. This is RISC
processing if ever there is such a thing. Moreover, the fact that all
things
are handled as a single data type sure does imply an object point of
view, however much that point of view is myopically constrained (that
the objects are all lists!).
This is a very "pure" view of LISP. It's more or less the way I (and other
computer-science people) might write LISP, but it's definitely NOT true of
modern LISP programming. LISP has had non-list data types for quite a
while, actually; I suspect they have become more important as "real-world"
LISP implementations and code have become more common.
The most interesting aspect of Lisp, for me, is that
code can be
constructed by the operation of a program, and thereupon caused to
be executed. This is another parallel with machine languages.
Quite true. Of course, LISP is also compiled these days, and the compiler
writer must account for the functional aspects of LISP (like the ability to
construct programs at run-time). Writing a LISP compiler is not easy!
-- Derek