Python syntax in Lisp and Scheme

Alex Martelli aleaxit at yahoo.com
Sat Oct 11 19:19:54 EDT 2003


Kenny Tilton wrote:
   ...
>> The very 'feature' that was touted by Erann Gat as macros' killer
>> advantage in the WITH-CONDITION-MAINTAINED example he posted is the
>> crucial difference: functions (HO or not) and classes only group some
>> existing code and data; macros can generate new code based on examining,
>> and presumably to some level *understanding*, a LOT of very deep things
>> about the code arguments they're given.
> 
> Stop, your scaring me. You mean to say there are macros out there whose
> output/behavior I cannot predict? And I am using them in a context where
> I need to know what the behavior will be? What is wrong with me? And
> what sort of non-deterministic macros are these, that go out and make
> their own conclusions about what I meant in some way not documeted?

Let's start with that WITH-CONDITION-MAINTAINED example of Gat.  Remember 
it?  OK, now, since you don't appear to think it was an idiotic example, 
then SHOW me how it takes the code for the condition it is to maintain and
the (obviously very complicated: starting a reactor, operating the reactor,
stopping the reactor -- these three primitives in this sequence) program 
over which it is to maintain it, and how does it modify that code to ensure
this purpose.  Surely, given its perfectly general name, that macro does not
contain, in itself, any model of the reactor; so it must somehow infer it 
(guess it?) from the innards of the code it's analyzing and modifying.

Do you need to know what the behavior will be, when controlling a reactor?
Well, I sort of suspect you had better.  So, unless you believe that Gat's 
example was utterly idiotic, I think you can start explaining from right 
there.

> I think the objection to macros has at this point been painted into a
> very small corner.

I drastically disagree.  This is just one example, that was given by one of 
the most vocal people from your side, and apparently not yet denounced
as idiotic, despite my asking so repeatedly about it, so presumably agreed
with by your side at large.  So, I'm focusing on it until its import is 
clarified.  Once that is done, we can tackle the many other open issues.

For example, the fact that Gat himself says that if what I want to write
are normal applications, macros are not for me: only for those who want
to push the boundaries of the possible are they worthwhile.  Do you think
THAT is idiotic, or wise?  Please explain either the reason of the drastic
disagreements in your camp, or why most of you do keep trying pushing
macros (and lisp in general) at those of us who are NOT particularly
interested in "living on the edge" and running big risks for their own sake,
accordingly to your answer to the preceding question, thanks.

"Small corner"?!  You MUST be kidding.  Particularly given that so many
on your side don't read what I write, and that you guys answer the same
identical questions in completely opposite ways (see below for examples
of both), I don't, in fact, see how this stupid debate will ever end, except
by exhaustion.  Meanwhile, "the objection to macros" has only grown
larger and larger with each idiocy I've seen spouted in macros' favour,
and with each mutual or self-contradiction among the macros' defenders.


>> ...If all you do with your macros is what you could
>> do with HOF's, it's silly to have macros in addition to HOF's
> 
> There is one c.l.l. denizen/guru who agrees with you. I believe his

...and there's another who has just answered in the EXACTLY opposite
way -- that OF COURSE macros can do more than HOF's.  So, collectively 
speaking, you guys don't even KNOW whether those macros you love so
much are really necessary to do other things than non-macro HOFs allow
(qualification inserted to try to divert the silly objection, already made 
by others on your side, that macros _are_ functions), or just pretty things
up a little bit.  Would y'all mind coming to some consensus among you
experienced users of macros BEFORE coming to spout your wisdom over
to us poor benigthed non-lovers thereof, THANKYOUVERYMUCH...?

>> far from all).  This is far from the first time I'm explaining this, btw.
> 
> Oh. OK, now that you mention it I have been skimming lately.

In this case, I think it was quite rude of you to claim I was not answering
questions, when you knew you were NOT READING what I wrote.


As you claim that macros are just for prettying things up, I will restate
(as you may not have read it) one of the many things I've said over and
over on this thread: I do not believe the minor advantage of prettying 
things up is worth the complication, the facilitation of language 
divergence between groups, and the deliberate introduction of multiple
equivalent ways to solve the same problem, which I guess you do know
I consider a bad thing, one that impacts productivity negatively.


Alex





More information about the Python-list mailing list