[Python-3000] Announcing PEP 3136
tjreedy at udel.edu
Wed Jul 4 01:40:14 CEST 2007
"John S. Yates, Jr." <john at yates-sheets.org> wrote in message
news:j1gk83hfeltf7uqi0u4b5tpgbg80qg3cp0 at 4ax.com...
| On Tue, 3 Jul 2007, "Guido van Rossum" <guido at python.org> wrote:
| >However, I'm rejecting it on the basis that code so complicated to
| >require this feature is very rare.
| I assume that you are familiar with Donald E. Knuth's classic paper:
| "Structured Programming with go to Statements"
Do you consider this to be for or against the PEP? Rereading it....
At least half Knuth's goto examples are covered by Python's single level
Example 1 (switched to 0-bases arrays, not tested):
for i in range(m):
if A[i] == x: break
A[m] = x
B[m] = 0
m += 1
B[i] += 1
Example 5 (ditto):
i = 0 #? initial value not given
if A[i] < x:
if L[i] != 0:
i = L[i]; continue
L[i] = j; break
else: # > x
if R[i] != 0:
i = R[i]; continue
R[i] = j; break
# dup code could be factored with LR = L or R as A[i] < or > x
A[j] = x
L[j] = R[j] = 0
j += 1
The rest are general gotos, including jumps into the middle of loops.
None are multilevel continues or breaks.
More information about the Python-3000