Path: utzoo!attcan!uunet!husc6!think!barmar From: barmar@think.COM (Barry Margolin) Newsgroups: comp.lang.lisp Subject: Re: What's the value of lexical scoping? Message-ID: <22214@think.UUCP> Date: 19 Jun 88 02:29:01 GMT References: <24508@ucbvax.BERKELEY.EDU> <515@dcl-csvax.comp.lancs.ac.uk> <199@esosun.UUCP> <525@dcl-csvax.comp.lancs.ac.uk> <209@esosun.UUCP> Sender: usenet@think.UUCP Reply-To: barmar@kulla.think.com.UUCP (Barry Margolin) Organization: Thinking Machines Corporation, Cambridge, MA Lines: 35 In article <209@esosun.UUCP> jackson@esosun.UUCP (Jerry Jackson) writes: >1) packages -- The package system of CL is based on the wrong idea.. >A programmer doesn't care if someone else uses the same symbol as *data*; >He only cares if it is a variable name or a function name, etc. Since >what is important is the set of *bindings* for a symbol, an environment >system would be more appropriate. One program's function name is another program's data. Macros, for instance, are programs whose data will later be interpreted as a program. And what about symbols used in property lists? Both a quantum physics program and an auto inventory program might use the COLOR property of symbols. >4) A nit-pik -- has anyone ever found a use for the top level form: '-' ? Not for anything serious. It's just a holdover from MacLisp. It's trivial to implement, and I guess the CL designers saw no reason to drop it. In MacLisp, which didn't have the LABELS construct, it could be used to do recursion without actually defining a new function. For example, factorial(10) could be done with: ((lambda (n) (if (< x 2) 1 (* n (funcall (car -) (1- n))))) 10) Barry Margolin Thinking Machines Corp. barmar@think.com {uunet,harvard}!think!barmar