[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: LFM + LFSP = LFE?
Guy,
This was *exactly* the article I had in mind when I mentioned this topic.
Thanks for posting it. Great article BTW -- can you post a link?
Mike
> Date: Mon, 16 Jun 2003 13:17:03 -0400 (EDT)
> From: Guy Steele - Sun Microsystems Labs <Guy.Steele@Sun.COM>
>
> Date: Fri, 13 Jun 2003 18:34:40 -0700
> From: Michael Vanier <mvanier@cs.caltech.edu>
> To: sk@cs.brown.edu
> Cc: ll1-discuss@ai.mit.edu
> Subject: Re: LFM + LFSP = LFE?
>
>
> My understanding is that there have been a number of efforts over the years
> to put a more "conventional" syntax on top of scheme or lisp. Of course,
> they don't get far because after a while, people prefer the s-expression
> syntax (which is more powerful once you factor in macros etc.). However,
> this approach might be worth trying again. Perhaps this would be one way
> to give scheme the LFE-nature. Does DrScheme have anything like this?
>
> Parenthetically (pun intended), the guile scheme people did this a few
> years ago but abandoned the effort.
>
> I can't resist quoting this snippet from
>
> Steele, Guy L., Jr. and Gabriel, Richard P. "The Evolution of Lisp."
> In Bergin, Thomas J., Jr. and Gibson, Richard G., Jr. (eds.),
> History of Programming Languages, ACM Press, New York, 1996, 233-330.
>
> on the subject of "conventional" syntax for Lisp:
>
> The idea of introducing Algol-like syntax into Lisp keeps popping up
> and has seldom failed to create enormous controversy between those who
> find the universal use of S-expressions a technical advantage (and
> don't mind the admitted relative clumsiness of S-expressions for
> numerical expressions) and those who are certain that algebraic syntax
> is more concise, more convenient, or even more "natural" (whatever
> that may mean, considering that all these notations are artificial).
>
> We conjecture that Algol-style syntax has not really caught on in the
> Lisp community as a whole for two reasons. First, there are not
> enough special symbols to go around. When your domain of discourse is
> limited to numbers or characters, there are only so many operations of
> interest, and it is not difficult to assign one special character to
> each and be done with it. But Lisp has a much richer domain of
> discourse, and a Lisp programmer often approaches an application as
> yet another exercise in language design; the style typically involves
> designing new data structures and new functions to operate on
> them---perhaps dozens or hundreds---and it's just too hard to invent
> that many distinct symbols (though the APL community certainly has
> tried). Ultimately one must always fall back on a general function-call
> notation; it's just that Lisp programmers don't wait until they fail.
>
> Second, and perhaps more important, Algol-style syntax makes programs
> look less like the data structures used to represent them. In a
> culture where the ability to manipulate representations of programs
> is a central paradigm, a notation that distances the appearance of
> a program from the appearance of its representation as data is not
> likely to be warmly received (and this was, and is, one of the
> principal objections to the inclusion of LOOP in Common Lisp).
>
> On the other hand, precisely because Lisp makes it easy to play
> with program representations, it is always easy for the novice to
> experiment with alternative notations. Therefore we expect future
> generations of Lisp programmers to continue to reinvent Algol-style
> syntax for Lisp, over and over and over again, and we are equally
> confident that they will continue, after an initial period of
> infatuation, to reject it. (Perhaps this process should be regarded
> as a rite of passage for Lisp hackers.)
>
> --Guy Steele
>