foreach
via Digitalmars-d
digitalmars-d at puremagic.com
Sun Jun 15 01:38:31 PDT 2014
On Sunday, 15 June 2014 at 07:05:37 UTC, Nick Sabalausky wrote:
> True story: I once had to put up with a production codebase
> (the company's *flagship* product) that wasn't asm (it was VB6)
> and yet was filled with garbage like this:
>
> if ...cond... then
> ...statements...
> goto somelabel
> end
> ...statements...
> somelabel:
Heh, when writing a state machine the implied loops can be
nontrivial and then gotos can result in cleaner, tighter and
faster code than a regular loop with a switch statement or
function pointers or or whatever. Co-routines and gotos can
provide pretty clean state machines.
IIRC the minimalistic Beta language used a lower level construct
which allowed to loop a block (a pattern/object) using a
"restart" statement. Then higher level looping constructs could
be built on top of it. Basically like having the "continue"
statement refer to a block.
Anyway, "for(;;)" is idiomatic in C by now, so changing it would
be a bad idea.
More information about the Digitalmars-d
mailing list