Path: utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!uunet!brunix!mj From: mj@cs.brown.edu (Mark Johnson) Newsgroups: comp.lang.lisp Subject: Re: FUNCALL question Message-ID: <27831@brunix.UUCP> Date: 2 Feb 90 19:45:12 GMT References: <3277@accuvax.nwu.edu> <1990Jan28.175437.19293@hellgate.utah.edu> <2247@papaya.bbn.com> <389@forsight.Jpl.Nasa.Gov> Sender: news@brunix.UUCP Reply-To: mj@cs.brown.edu (Mark Johnson) Organization: Brown University Department of Computer Science Lines: 19 gat@robotics.Jpl.Nasa.Gov writes: > 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)) ... I agree --- except that I think CL should be modified so that all variables' values are determined using the rules of lexical scoping, unless the variable reference i explicitly identified as being dynamically scoped: perhaps by using forms such as (dynamic x) or (special x). (This is in addition to declaring the variable special with defvar). Syntactic sugar for these forms could easily be devised --- perhaps #*x could expand to (dynamic x) or whatever? Mark