Subject: Re: Fexprs more flexible, powerful, easier to learn? (Newlisp vs CL)
From: rpw3@rpw3.org (Rob Warnock)
Date: Tue, 27 Jan 2009 21:18:00 -0600
Newsgroups: comp.lang.lisp
Message-ID: <wsudnXn3xJ_1U-LUnZ2dnUVZ_rDinZ2d@speakeasy.net>
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