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

Re: #,

I think you misunderstood what I thought #, does. I didn't say that
#, is self-quoting. Just as reading the number 3 isn't self-quoting,
neither does #, have to be. I believe #,form represents the object
returned by evaluating form at load time, not some expression which
may evaluate to some object at load time. The problem here is that
people have drawn the parallel with #. a bit too far. Unlike #. and
other read macros, it isn't clear what #, expands int. I think we
all agree what #, does inside data structures and that it's illegal
as the first thing in a LET, for example. Allowing a #, where one
would expect to evaluate an expression seems perfectly reasonable
if one thinks of the #, modifying when and how often the form gets
evaluate One might think of #, expanding into a form which the
compiler can treat as a reference to a variable that gets initialized
at load time.

On a related issue, what does EVAL-WHEN return, when it did evaluate
something, and when it didn't?