help-gnu-emacs
[Top][All Lists]
Advanced

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

RE: About `autoload-do-load'


From: Drew Adams
Subject: RE: About `autoload-do-load'
Date: Tue, 8 Jan 2013 09:50:06 -0800

> > > Yes, function value and function cell are equivalent in 
> > > this context.
> > 
> > Not quite: a "cell" is a place somewhere in memory that can contain
> > a value.  So the "function cell" of a symbol *holds* (as opposed to
> > "is") a "function value".
> 
> But the way the phrase was being used in the documentation in 
> question doesn't distinguish these two concepts.

Not too surprising.

Stefan is of course right that the location and its contents are not the same
thing.

But consider "variable".  A variable is a named location as well.  And a
variable is not the same thing as its value.  But we sometimes write "variable
`foo'" when we really mean "the value of variable `foo'".  Hopefully we do so
only in contexts where the meaning of that shorthand is clear.

It's good to point out the difference.  It's also good for the doc to be clear
about which is meant, in any context where there could be confusion and where
the confusion would matter.

If you find a doc passage that is unclear in this regard, please submit a bug
report.

The term "function value" has its own problems, specific to the fact that a
function application returns a value.  Someone might think that that is what is
meant by the term.  It is probably better to speak specifically of the "value of
the function cell", rather than to use the term "function value".

But typically, the context where we might talk about "function value" would
leave no doubt about whether what is meant has anything to do with the value of
a function application.

And on the other hand, "function value" speaks to the fact that in Lisp a
function is itself a value, i.e., more or less a first-class object.  In this
sense the value of the function cell is a stand-in for the denoted functional
value.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]