Re: Relative merits of Lisp-1 vs. Lisp-2?



Ron Garret wrote:
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.

Sure.

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.

Yes, I agree, ((lambda ...) ...) is also confusing.

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.

This is incorrect. We only disagree in how change is actually achieved.

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.

I am looking forward to reading about, and playing with, the whole thing. I am skeptical that you can achieve all your goals, but I am happy to be proved wrong.


Pascal

--
3rd European Lisp Workshop
July 3 - Nantes, France - co-located with ECOOP 2006
http://lisp-ecoop06.bknr.net/
.



Relevant Pages

  • Re: How can I upgrade Office 2002 SP 3 to Office 2007 and keep both versions?
    ... features is confusing and takes up space that I'd rather use as my ... well -- and my issue is that the arrangement of the features gives me grief ... and your existing Office Suite is better than the ... I hate to rag on Office '07, but I've found no good reason to migrate to ...
    (microsoft.public.office.setup)
  • Re: Relative merits of Lisp-1 vs. Lisp-2?
    ... many things in CL are already confusing. ... overhead in understanding the exact semantics. ... But the gain is not purely aesthetic. ... It is not the only reason. ...
    (comp.lang.lisp)
  • Re: A Brief Note on Notation
    ... >>> I think that one worthy goal of logic lists like this would be to agree ... > reason not to so long as it's strictly defined (I assume, ... > confusing as well. ... horseshoe operator the analogy to set inclusion is obvious. ...
    (sci.logic)
  • Re: Canadian in total and absolute confusion
    ... when I file all my multitude of papers...the i-130 and i-485 ... Nothing really confusing if you step away from it for a bit. ... Your reason for applying is very simple "You are married to a US ... sheets. ...
    (misc.immigration.usa)
  • Re: "Translating" values in a cell
    ... chances are that I inadvertently made things more confusing than need ... uses a simple 2-letter prefix, whereas the old system uses a 7-letter ... I would like to make a macro where we can use the new code in ... but greatly appreciate your assistance. ...
    (microsoft.public.excel.programming)