Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Ron Garret <rNOSPAMon@xxxxxxxxxxx>
- Date: Thu, 01 Jun 2006 14:42:11 -0700
In article <4e92c0F1dfmdbU1@xxxxxxxxxxxxxx>,
Pascal Costanza <pc@xxxxxxxxx> wrote:
The fact that the
same form gives rise to two reasonable, but completely different
interpretations _is_ confusing.
On that view, many things in CL are already confusing. Personally I
find the idea of ((...) ...) == (funcall (...) ...) to be quite clear,
unambiguous, and easy to understand. It also has the nice property that
it subsumes the ((lambda ...) ...) rule, which is also (you must at this
point agree) quite confusing.
That I am purportedly disallowing anyone to do anything is complete and
utter nonsense.
What is the point of deprecating a feature of the language if it is not
your desire to disallow people from using that feature to the extent
that it is possible to do so?
The desire is to discourage people from using (or enabling) that feature
in Common Lisp. This desire is not unreasonable. I think (!) that the
gain (which is purely aesthetical, it doesn't increase expressiveness of
the language at all) is not worth the price to pay in terms of the
overhead in understanding the exact semantics.
But the gain is not purely aesthetic. The current semantics are
actually quite limiting in at least one important way. See below.
However, this is not the only issue. Even if the gain were purely
aesthetic, the cost is near zero. Even an aesthetic gain is worth it.
That coupled with even the *possibility* of additional gain makes it
even more worthwhile.
The fact that you have an existence proof is clear
evidence that I cannot disallow you to do this.
But I am only able to do it by resorting to implementation-specific
hacks (or a full code walker, which offends my sensibilities for
something so trivial). And that is a direct result of you and people
like you who wish to impose gratuitous constraints on the language on
the grounds that *they* find it confusing or useless or whatever.
I wasn't a member of the ANSI CL standardization committee.
No, but you are a member of the faction that supports treating their
work as immutable gospel.
If I remember correctly, your motivation to enable treating conses in
the car of a form in a meaningful way was to make a certain programming
style more convenient.
That is one reason. It is not the only reason.
What are your other reasons?
I am working on adding a system of first-class global lexical
environments to CL (originally called locales after the terminology in
T, now called lexicons to avoid confusion with I18N). It turns out that
adding these to the language has all sorts of happy consequences,
including the seamless integration of Lisp-1 and Lisp-2 semantics
without a code walker, in addition to a host of ancillary benefits which
I will not detail here. I'll just say that great swaths of complexity
and controversy can be mowed down and discarded if you have first-class
global lexical environments.
One of the additional benefits is (possibly) a new macro system which
combines the simplicity of Lisp-1 semantics and the simplicity of Lisp-2
macros while avoiding the risk of accidental name clashes, which some
people might find an attractive alternative to what is currently
available. But to prototype the system I need to be able to convert
(^foo ...) into something like (funcall (top-level-binding 'foo) ...).
If I have ((...) ...) == (funcall (...) ...) then this is trivial. All
I need is a reader macro for #\^, and everything works just fine. But
without that I have to resort to one of a number of horrible hacks, a
code walker being among the least horrible of them.
There are other useful things one can do as well, but that's the one
that has my attention at the moment.
rg
.
- Follow-Ups:
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Thomas Schilling
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Pascal Costanza
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Peter Seibel
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- References:
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Marcin 'Qrczak' Kowalczyk
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Ron Garret
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Pascal Costanza
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Peter Seibel
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Pascal Costanza
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Ron Garret
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Pascal Costanza
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Ron Garret
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- From: Pascal Costanza
- Re: Relative merits of Lisp-1 vs. Lisp-2?
- Prev by Date: Re: A Better Lisp?
- Next by Date: Re: Relative merits of Lisp-1 vs. Lisp-2?
- Previous by thread: Re: Relative merits of Lisp-1 vs. Lisp-2?
- Next by thread: Re: Relative merits of Lisp-1 vs. Lisp-2?
- Index(es):
Relevant Pages
|