Dimiter \"malkia\" Stanev <malkia@mac.com> wrote:
+---------------
| Raffael Cavallaro wrote:
| > Even assuming you manage to do so the real issue is one of sensible
| > defaults. Scheme showed clearly that the sensible default is lexical
| > scope because it allows programmers to reason about code without having
| > to do whole-program analysis. This is why lexical scope was adopted as
| > the default in Common Lisp. newlisp gets this backwards.
|
| And Common Lisp, deciding to keep dynamic vars, unlike Scheme (AFAIK),
| but making them a *special*, not default choice is the right thing to do!
+---------------
Unfortunately, for compatibility with historical Lisps, Common Lisp
chose to leave global variables SPECIAL by default, *not* lexical
as in Scheme. This was a serious mistake, IMHO.
Fortunately, the addition of DEFINE-SYMBOL-MACRO to the standard
made it possible for users to re-introduce global lexical variables
themselves.[1]
-Rob
[1] <http://rpw3.org/hacks/lisp/deflex.lisp> and the like.
-----
Rob Warnock <rpw3@rpw3.org>
627 26th Avenue <URL:http://rpw3.org/>
San Mateo, CA 94403 (650)572-2607