From: ··········@tfeb.org
Subject: Re: Is Lisp "syntaxless"? (was: Paul Graham's teaching style is bad)
Date:
Message-ID: <cfsl0n$pg9@odah37.prod.google.com>
Stefan Ram wrote:
>
> But in Common Lisp, e.g., the loop structure, as being
> described by, e.g.,
>
> http://www.cs.washington.edu/ai/cltl/clm/node241.html
>
> seems to have much more syntax, than just { <s-expression> }
> inside the parentheses.
>
> What is left, is not a syntaxless parse tree, but a parse tree
> in a well-documented and accessible form.
That's what it looks like, doesn't it? But in fact LOOP is just a
macro, of course, so you can macroexpand it away. Where is the syntax
now?
In fact this whole `syntaxless' thing is pretty much a red herring.
Imagine sonme linguistic purists got together and defined a Lisp wth no
construct which weren't just (op arg*). Well, I'm a LOOP fan, so the
first thing I'd do, if someone were to force me to use such a Lisp,
would be to implement a macro called LOOP, which would have pretty much
the syntax of the CL LOOP. Other people would implement macros with
names like FORMAT which, would have arguments which were *strings* with
obscure syntax in, horrors! This process would continue until the
linguistic purists heads exploded, and the world became a better place.
In other words: if you want to be anal about your language (lack of)
syntax, don't have macros.
--tim
···········@tfeb.org" <··········@tfeb.org> writes:
> In fact this whole `syntaxless' thing is pretty much a red herring.
> Imagine sonme linguistic purists got together and defined a Lisp wth no
> construct which weren't just (op arg*). Well, I'm a LOOP fan, so the
> first thing I'd do, if someone were to force me to use such a Lisp,
> would be to implement a macro called LOOP, which would have pretty much
> the syntax of the CL LOOP. Other people would implement macros with
> names like FORMAT which, would have arguments which were *strings* with
> obscure syntax in, horrors! This process would continue until the
> linguistic purists heads exploded, and the world became a better place.
> In other words: if you want to be anal about your language (lack of)
> syntax, don't have macros.
And don't have more than one argument:
(if cond then else)
is not the same thing as:
(if else cond then)
--
__Pascal Bourguignon__ http://www.informatimago.com/
Our enemies are innovative and resourceful, and so are we. They never
stop thinking about new ways to harm our country and our people, and
neither do we.