Subject: bug#9469: buffer-local variables seem to remember previous values

From: Le Wang <[email-masked]>
Date: Fri, 16 Sep 2011 02:14:34 +0800

On Wed, Sep 14, 2011 at 2:02 AM, Johan Bockgård <[email-masked]> wrote:
> Stefan Monnier <[email-masked]> writes:
>> There is no memoization: the quote does not *construct* the object, it
>> just returns it.
>
> I think the "as written" bit is mildly confusing, and nearly falls into
> this trap:
>
>    In other languages, an expression is text; it has no other form. In
>    Lisp, an expression is primarily a Lisp object and only secondarily
>    the text that is the object's read syntax. Often there is no need to
>    emphasize this distinction, but you must keep it in the back of your
>    mind, or you will occasionally be very confused.
>
>        -- (info "(elisp) Printed Representation")

This is kind of funny.  Stefan and Andreas basically kept saying quote
just returns the thing, but doesn't construct it.  My mind couldn't
grasp what that means.

The reader is the chasm that I just couldn't cross.  In my mind a
program describes how something happens, it isn't the thing that
happens.  "(quote (a b))", `quote' is a function that returns a
reference to something.  And for it to return the same reference, then
it must be memoizing based on the inputs.

The passage Johan posted along with Drew's explanation has enlightened
me.  Thank you all.

-- 
Le