[Python-3000] Announcing PEP 3136

Terry Reedy 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"
| http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf

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 
restricted gotos:
Example 1 (switched to 0-bases arrays, not tested):
for i in range(m):
 if A[i] == x: break
else:
 A[m] = x
 B[m] = 0
 m += 1
B[i] += 1
Example 5 (ditto):
i = 0 #? initial value not given
while True:
 if A[i] < x:
 if L[i] != 0:
 i = L[i]; continue
 else:
 L[i] = j; break
 else: # > x
 if R[i] != 0:
 i = R[i]; continue
 else:
 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.
tjr


More information about the Python-3000 mailing list

AltStyle によって変換されたページ (->オリジナル) /