Subject: Re: setf not binding variable in code
From: Erik Naggum <>
Date: 1999/03/30
Newsgroups: comp.lang.lisp
Message-ID: <>

* Vassil Nikolov <>
| but SET is deprecated.

  I'm curious how people react to this "deprecated" thing.  the other day,
  I saw some code that did LOAD at the top of a file because the author was
  scared of REQUIRE and PROVIDE, although he was in fact producing modules.
  the reason was no better than that they were "deprecated".  I don't think
  it's a good idea to avoid things just because they are deprecated when no
  better solution exists.

  e.g., if the accessor is (symbol-value symbol), then clearly setf of same
  is the best solution.  if, however, the accessor is EVAL, I think SET is
  a better solution because the fact that we access a symbol's value slot
  is incidental to that usage.
  other deprecated features have similar rationales, but not all.  e.g., I
  can fully accept the deprecation of the :TEST-NOT argument to predicates,
  but not because I believe in COMPLEMENT (which I don't), but because it
  has clear and present problems when combined with :TEST.  the same
  problem does not exist with the -IF-NOT functions, which I have posted
  about previously.

  BTW, I think REQUIRE and PROVIDE _can_ be removed from the standard only
  after a DEFSYSTEM has been included.