Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!watmath!clyde!rutgers!lll-lcc!well!jjacobs From: jjacobs@well.UUCP Newsgroups: comp.lang.lisp Subject: Special Variables in Common LISP Message-ID: <2625@well.UUCP> Date: Sat, 21-Feb-87 22:12:24 EST Article-I.D.: well.2625 Posted: Sat Feb 21 22:12:24 1987 Date-Received: Sun, 22-Feb-87 10:43:38 EST References: <2624@well.UUCP> Reply-To: jjacobs@well.UUCP (Jeffrey Jacobs) Organization: Whole Earth 'Lectronic Link, Sausalito, CA Lines: 42 In <145@lmi-angel.UUCP>, Bob Krajewski writes: >In other words, why would anybody do > (let ((lose-p nil)) > (save-the-world)) >unless LOSE-P was a special variable which evidently affected the behavior >of the SAVE-THE-WORLD function ? If the variable LOSE-P were not special, >the compiler would probably warn about the useless binding. Let me change the example a little bit; let's make it (DEFVAR LOSE-P NIL) (DEFUN NOT_SURE_YET (LOSE-P) (SAVE-THE-WORLD)) Possible reasons for this: 1. NOT_SURE_YET isn't completely defined, yet. 2. It is anticipated that NOT_SURE_YET might, in the future, need to change the value of LOSE-P. 3. It is a primary function of a package, such as an editor, with LOSE-P the key global variable. Think of calling a structure editor with the form to be edited. Remember that the domain under discussion is that of debugging *other* people's code, not reading people's code for interest or fun. If they were writing reasonable code, I wouldn't have to be debugging it :-) Jeffrey M. Jacobs CONSART Systems Inc. Technical and Managerial Consultants P.O. Box 3016, Manhattan Beach, CA 90266 (213)376-3802 CIS:75076,2603 BIX:jeffjacobs USENET: jjacobs@well.UUCP