Thanks for all the replies. I DO need to get "Common Lisp the Language", but I've got a few good books to keep me busy until I have the chance to order that. Practical Common Lisp btw is really nice, and I've been supplimenting my reading of Touretzsky's book.
Thanks again. Stephen On 12/29/05, Matthew Danish <[EMAIL PROTECTED]> wrote: > On Thu, Dec 29, 2005 at 02:13:48PM -0800, Stephen Horner wrote: > > * (setf a 100) > > Warning: Declaring A special. > ^ warnings are relevant. > > > > > 100 > > * (defun g (b) (list a b)) > > > > G > > * (defun f (a) (list a (g (+ a 1)))) > > > > F > > * (f 3) > > > > (3 (3 4)) > > * > > -------------------------------------------------------------------------------- > > > > NOTE: > > (3 (100 4)) is what what I was "taught" _should_ return. That is according > > to > > David S. Touretzky's Common Lisp: A gentle Introduction to Symbolic > > Computation. > > Also (3 (100 4)) is returned in clisp-2.34-r1, and sbcl-0.9.7 > > Touretzsky is a bit out of date if he is recommending the usage of > (setf a 100) > on an undeclared variable. That behavior is undefined. In CMUCL it > automatically declares A a Special variable and outputs a warning. > > Seeing that his book was written prior to the standard being submitted, > I believe, it's excusable I suppose. > > If you haven't reached an understanding of Special variables yet, you > may wish to consult "Common Lisp the Language ed 2" chapter on "Scope". > > The behavior above is correct for a Special variable. > > -- > ;; Matthew Danish -- user: mrd domain: cmu.edu > ;; OpenPGP public key: C24B6010 on keyring.debian.org >
