Subject: Re: setq setf
From: Erik Naggum <erik@naggum.net>
Date: Sat, 09 Mar 2002 22:57:05 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3224703434940626@naggum.net>

* Kent M Pitman <pitman@world.std.com>
| I think of the difference between SETQ and SETF as being "assignment" vs
| "side-effect" and regard it as a linguistic irritation that SETF is
| allowed to assign variables, though it obviously has a place (pardon the
| pun) in describing places.

  This distinction seems reasonable, and your explanation about doing
  something in a lambda is not lost on me, _but_ I conclude that special
  varriables are therefore different from lexical variables, in that you
  _can_ pass a symbol to a lambda and have it "side-effect" that binding,
  or, as it might be implemented, the symbol-value slot, so one should use
  SETF on special variables.  Or do special bindings offer the same kind of
  "encapsulation" that symbol-macrolet does?

| But that's just me.  I'm not really advocating anyone think like me.  I'm
| just noting that there is this other pont of view.  I'm presently torn
| about how to present this issue in books I'm working on, and am leaning
| toward just saying to use SETF in spite of my personal preference.

  There seems to be an important distinction between lexical and
  non-lexical data in here, somewhere.

///
-- 
  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.