home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / lang / lisp / 2353 < prev    next >
Encoding:
Text File  |  1992-09-01  |  730 b   |  29 lines

  1. Path: sparky!uunet!mcsun!uknet!edcastle!aiai!jeff
  2. From: jeff@aiai.ed.ac.uk (Jeff Dalton)
  3. Newsgroups: comp.lang.lisp
  4. Subject: Re: Freezing a variable: how?
  5. Message-ID: <7417@skye.ed.ac.uk>
  6. Date: 1 Sep 92 15:27:21 GMT
  7. References: <1992Aug28.194300.20461@jpl-devvax.jpl.nasa.gov> <19920829213038.4.KMP@PLANTAIN.SCRC.Symbolics.COM>
  8. Sender: news@aiai.ed.ac.uk
  9. Organization: AIAI, University of Edinburgh, Scotland
  10. Lines: 17
  11.  
  12. For global variables, you could write your own macro to use instead of
  13. SETQ and have the expansion check.  Eg:
  14.  
  15.   (defmacro safe-setq (var form)
  16.     `(if (get ',var 'constant)
  17.          (error ...)
  18.        (setq ,var ,form)))
  19.  
  20. and then
  21.  
  22.   (defun make-constant (var)
  23.     (setf (get var 'constant) t))
  24.  
  25. -- jd
  26.  
  27.  
  28.   
  29.