[Python-Dev] Re: C's for statement
Eric S. Raymond
esr@thyrsus.com
Mon, 29 Jan 2001 21:34:01 -0500
Guido van Rossum <guido@digicool.com>:
> Common abominations include:
>
> - writing a while loop as for(;<test>;)
Agreed. Bletch.
> - putting arbitrary initialization code in <init>
Not sure what's "arbitrary", unless you mean unrelated to the
iteration variable.
> - having an empty condition, so the <step> becomes an arbitraty
> extension of the body that's written out-of-sequence
Again agreed. Double bletch.
I guess my archetype of the cute C for-loop is the idiom for
pointer-list traversal:
struct foo {int data; struct foo *next;} *ptr, *head;
for (ptr = head; *ptr; ptr = ptr->next)
do_something_with(ptr->data)
This is elegant. It separates the logic for list traversal from the
operation on the list element.
Not the highest on my list of wants -- I'd sooner have ?: back. I submitted
a patch for that once, and the discussion sort of died. Were you dead
det against it, or should I revive this proposal?
--
<a href="http://www.tuxedo.org/~esr/">Eric S. Raymond</a>
"The bearing of arms is the essential medium through which the
individual asserts both his social power and his participation in
politics as a responsible moral being..."
-- J.G.A. Pocock, describing the beliefs of the founders of the U.S.