Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!usc!elroy.jpl.nasa.gov!forsight!gat From: gat@robotics.Jpl.Nasa.Gov (Erann Gat) Newsgroups: comp.lang.lisp Subject: Re: FUNCALL question Message-ID: <389@forsight.Jpl.Nasa.Gov> Date: 2 Feb 90 17:28:24 GMT References: <3277@accuvax.nwu.edu> <1990Jan28.175437.19293@hellgate.utah.edu> <2247@papaya.bbn.com> Organization: Jet Propulsion Laboratory, Pasadena, CA Lines: 23 In article <2247@papaya.bbn.com>, barr@bbn.com (Hunter Barr) writes: > You wouldn't want > to (UN-DEFVAR *PRINT-BASE*) would you? Now that *would* cause some > problems. I see your point. I guess my real gripe is that there is no way to guarantee that a given variable is lexically scoped. I would like to be able to do something like: (let ((x 1)) (declare (lexical x)) ... but CL has no such declaration. Granted, if you use the star convention (and everyone else on your Lisp machine uses it too) then you probably won't have problems. (This 'solution' is strongly reminiscent of the FORTRAN convention of having all variables beginning with I,J,K,L,M or N be integers.) However, the way things stand, one careless mistake or ignorant user can require a LONG time to fix. (One day long ago I typed (defvar x 1) as part of a quick experiment on a TI Explorer and for the next few days no one could understand why their code suddenly didn't work. Then someone rebooted the machine and all the problems mysteriously vanished.) E.