[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Issue: EVAL-OTHER (Version 1)

re:  . . . but I
    do remember the original design discussions.  It was proposed that
    everything but lists and symbols evaluate to themselves, but at the time
    (this was quite early in the process) some people felt that this might
    close out interesting parts of the design space that might turn out to
    be useful for something.  . . . 

Another way of saying this, and justifying the decision now to be made,
is that "Programs are encoded into lists and symbols; other data-types 
viewed as programs shall be interpreted as constant data".

Thus the purpose of QUOTE is so that you can introduce, say, the particular
datum (CAR X) into the program described as

  (DEFUN FOO (X) (LIST '(CAR X) '= (CAR X)))  ;who is data, and who is program?

Lisp program syntax really hasn't changed much in 20 years.  Note that
&OPTIONAL and :TEST-NOT are still symbols -- not some obscure internal
data structure invented for just this case of program syntax.

Someone may still want to nit-pick about numbers as tags in a tagbody,
but I don't think this is an important problem; it's merely a footnote
as to what a "program" is.

-- JonL --