[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: common-lisp@SAIL.STANFORD.EDU
- Subject: *APPLYHOOK* Vagueness
- From: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>
- Date: Thu, 12 Feb 87 20:13 EST
- In-reply-to: <8702122224.AA17872@utah-orion.ARPA>
Date: Thu, 12 Feb 87 15:24:25 MST
From: email@example.com (Stanley T. Shebs)
Page 322 of CLtL is a little vague on exactly when *applyhook* is used.
It says that the apply hook function is used only for "ordinary" functions,
while funcalls and some related cases are not hookable. I would like to know
what an "ordinary" function is - does it include named local functions
created via flet? What about an anonymous lambda in the car of a form?
"Ordinary function" isn't a term defined in CLtL as far as I can tell,
but from context it means a genuine function, as opposed to a macro or
a special form. Whether the function is defined globally, locally, or
explicitly with a lambda-expression makes no difference. I hope that in
the future some consistent terminology will be used for the various
things that can appear in the car of a form, so that these problems of
ambiguity don't keep arising.
The business about funcall and mapcar is expanding on the "within eval"
portion of the phrase "application of ordinary functions within eval".
That is, applyhook controls only the application of the function
designated by the car of a form to the arguments resulting from
evaluating the forms in the cdr of the form.