Xref: utzoo comp.lang.lisp:2589 comp.lang.prolog:2263 Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!mcsun!ukc!edcastle!aiai!jeff From: jeff@aiai.ed.ac.uk (Jeff Dalton) Newsgroups: comp.lang.lisp,comp.lang.prolog Subject: Re: Lisp and Prolog Style Message-ID: <1483@skye.ed.ac.uk> Date: 20 Dec 89 19:22:16 GMT References: <8911211401.aa25148@PARIS.ICS.UCI.EDU> Reply-To: jeff@aiai.UUCP (Jeff Dalton) Organization: AIAI, University of Edinburgh, Scotland Lines: 16 In article alms@cambridge.apple.com (Andrew L. M. Shalit) writes: >Good style in Common Lisp (which is lexically scoped) may be very >different from good style for older dialects of Lisp. I think this >is part of the reason that Lisp still has a reputation for being slow. >Too many people program in Common Lisp as if it were Franz Lisp or >Interlisp (e.g. they use lots of dynamic binding, call EVAL all over >the place, etc). I found that if I programmed for the compiler in Franz, I would have to think in terms of lexical variables, make explicit special declarations when needed, etc. This sort of programming style was easy to adapt to Common Lisp. From this point of view, what Common Lisp did was to make the lexical scoping rules apply even in the interpreter and to extend them so that bindings had indefinite extent (ie, provide lexical closures).