[Python-Dev] PEP 351 - do while (original) (raw)
Ron Adam rrr at ronadam.com
Sun Oct 1 21:08:45 CEST 2006
- Previous message: [Python-Dev] PEP 351 - do while
- Next message: [Python-Dev] PEP 351 - do while
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Michael Urman wrote:
On 10/1/06, Ron Adam <rrr at ronadam.com> wrote:
(I don't think this has been suggested yet.)
while , : [snip] Putting both the entry and exit conditions at the top is easier to read. I agree in principle, but I thought the proposed syntax already has meaning today (as it turns out, parentheses are required to make a tuple in a while condition, at least in 2.4 and 2.5). To help stave off similar confusion I'd rather see a pseudo-keyword added. However my first candidate "until" seems to apply a negation to the exit condition. while True until False: # run once? run forever? while True until True: # run forever? run once?
It's still very different from any syntactical syntax I can think of in python. I'm not sure I like the idea.
Michael
I thought the comma might be a sticking point.
My first thought was to have a series of conditions evaluated on loops with the last condition repeated.
while loop1_cond, loop2_cond, loop3_cond, ..., rest_condition:
<body>
But I couldn't think of good uses past the first two that are obvious so I trimmed it down to just enter_condition and exit_condition which keeps it simple. But from this example you can see they are all really just top of the loop tests done in sequence. A do loop is just a matter of having the first one evaluate as True.
The current while condition is an entry condition the first time it's evaluated and an exit condition on the rest. So by splitting it in two, we can specify an enter and exit test more explicitly. There's a certain consistency I like about this also.
Is it just getting around or finding a nice alternative to the comma that is the biggest problem with this?
Maybe just using "then" would work?
while cond1 then cond2:
<body>
Cheers, Ron
- Previous message: [Python-Dev] PEP 351 - do while
- Next message: [Python-Dev] PEP 351 - do while
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]