Subject: backquote evaluation
From: Erik Naggum <erik@naggum.no>
Date: Mon, 27 Mar 1995 02:32:31 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3005260352.499433@naggum.no>

I thought `read' should read and `eval' should evaluate, but when I read a
backquoted form, weird things happen, like partial or complete evaluation.
I have tried to find out what the proper thing to do is, as well as find
support for the things that various implementations do, in CLtL2 and CL
dpANS 3, and I'm at a loss.

I recognize that as long as we're reading Lisp code to be evaluated, it
does not really matter when evaluation of simple expressions takes place,
but when reading Lisp code to work on it and write it back out again,
consternation occurs when different implementations disagree, and I can't
even find what's supposed to be the Right Thing.

I'm not sure what I'm trying to do is consonant with the Tao of Lisp, but
regardless, I have become interested in finding out if there's a specific
division of labor between `read' and `eval': is there a rule that says that
a set of forms are known always to be evaluated to identical results, so it
is arbitrary which of them is returned from a call to read, or is there a
rule that says that read is not allowed to mess with its input?

I'm sure there is a simple model that I have overlooked, so I won't bother
you with the numerous small examples that have confused me -- I fear I have
missed something utterly trivial.  if you think so, too, please mail me. :)

(not to be provocative, but I found Scheme's handling of quasiquote to be
elegant, which may blur my vision for alternate models.)

#<Erik>
-- 
the greatest obstacle to communication
is the illusion that it has already taken place