Python syntax in Lisp and Scheme

Alex Martelli aleax at aleax.it
Thu Oct 9 12:56:48 EDT 2003


Doug Tolton wrote:
   ...
> don't know me or my background.  Alex has stated on many occasions that
> he has not worked with Macros, but that he is relying on second hand
> information.

I never used Common Lisp in production: in the period of my life when I
was hired (by Texas Instruments) specifically for my knowledge of "Lisp",
that meant Scheme and a host of other dialects (mostly but not entirely now
forgotten).  I did use things that "passed for" macros in those dialects:
I had no choice, since each TI lab or faction within the lab was using a
different divergent mutant thing, all named "lisp" (save a few were named
"scheme" -- hmmm, I do believe that some were using Prolog, too, but I
did not happen to use it in TI), with some of the divergence hinging on
locally developed sets of macros (and some on different vendors/versions).

For all I know, CLisp's macros are SO head and shoulders above any of a
quarter century ago that any vaguely remembered technical problem from 
back then may be of purely historical interest.  I do believe that the
divergence problem has more to do with human nature and sociology, and 
that putting in a language features that encourage groups and subgroups 
of users to diverge that language cannot be compensated by technical
enhancements -- it _will_, in my opinion, cause co-workers in any middle- 
or large-sized organization to risk ending up standing on each others' 
feet, rather than on each others' shoulders. (Remedies must of course 
be sociological and lato sensu political first and foremost, but the way
the language & tools are designed CAN help or hinder).

So, I'm nowhere near an _expert_ -- over 20 years' hiatus ensures I
just can't be.  But neither is it totally 2nd hand information, and if
I gave the mistaken impression of never having used macros in a
production setting I must have expressed myself badly.  I do know I
jumped on the occasion of moving to IBM Research, and the fact that
this would mean going back to APL instead of "lisp" (in the above
vague sense) did matter somewhat in my glee, even though I still 
primarily thought of myself as a hardware person then (the programming 
was needed to try out algorithms, simulate possible hardware 
implementations thereof, etc -- it was never an end in itself).


> I don't claim to be a guru on Lisp, however I believe I understand it
> far better than Alex does.  If the people who actually know and use
> Common Lisp think I am mis-speaking and mis-representing Lisp, please
> let me know and I will be quiet.

Give that I've heard "everything and its opposite" (within two constant
parameters only: S-expressions are an unalloyed good -- macros are good,
some say unconditionally, others admit they can be prone to abuse) from
posters on this thread from "people who actually know and use" Lisp, I
don't know how you could "mis-speak and mis-represent" as long as you
stick to the two tenets of party doctrine;-).


> Like I said, I'm not an expert at Lisp, but I think I understand the
> spirit and semantics of Lisp far better than Alex, and from what I've

If by Lisp you mean Common Lisp and exclude Scheme, I'm sure you do; if
Scheme is to be included, then I'm not sure (but it's quite possible,
nevertheless) -- at least the "spirit" of the small core and widespread
HOFs w/single-namespace seem to be things I understand more (but the
"spirit" of why it's so wonderful to have extensible syntax isn't:-).


Alex





More information about the Python-list mailing list