Is there a programming language that is combination of Python and Basic?
Steven D'Aprano
steve at REMOVE-THIS-cybersource.com.au
Sat Apr 18 03:39:15 EDT 2009
On Fri, 17 Apr 2009 20:45:30 -0700, Mensanator wrote:
>> Nevertheless, somebody *has* implemented such functionality in Python.
>> Not just GOTO, but also COMEFROM.
>
> Really? Well, _I_ for one, won't be beating a path to his door.
Well you should. It's very clever code, and the way he solved the
"problem" is intriguing. It was also a great April Fools joke.
For reference, here's that URL again: http://entrian.com/goto/
>> GOTO in Pascal required that you defined a label in your code, then you
>> could jump to that label. You can't jump to arbitrary parts of the
>> program, only within the current procedure.
>
> And I deliberately made no effort to learn how to use them. And I never
> had a situation I couldn't solve the "proper" way.
You need to distinguish between the use of unstructured jumps like Basic-
style GOTOs and COMEFROMs, which can jump anywhere, and the use of
structured GOTOs and jumps that have well-defined meanings. GOTO, after
all, is just a jump, and we use jumps in Python all the time:
raise Exception
break
continue
if... elif... else...
for... else...
etc.
Often -- well, sometimes -- you can write cleaner, simpler code with GOTO
than without. Fortunately, 95% of those cases can be dealt with a break
or continue in a loop. In a high level language, GOTO is never necessary
and rarely useful, but it is useful on occasion. Any time you find
yourself creating a flag variable just so you can skip a code block, or
enter a code block, then a structured GOTO *could* be a clean
replacement. But probably isn't. (This is not a call for Python to
develop a GOTO, just a defence that they aren't always the Wrong Thing.)
COMEFROM on the other hand is just the purest evil imaginable.
--
Steven
More information about the Python-list
mailing list