== Quote from bearophile ([email protected])'s article
> D currently has two ways to define a generator, the first is the older one 
> with
opApply (And opApplyReverse):
> int opApply(int delegate(ref Type [, ...]) dg);
> The syntax of opApply is terrible: hard to remember, bug-prone, noisy,
intrusive. And this syntax doesn't even gain performance, because dmd is not 
very
good at inlining here.
> Several times in the past I have said that a very good syntax for this is the
Python one:
> def foo():
>   yield 5
> It's really easy to use and remember, not bug prone. This possible syntax is
about 75 times better than the current opApply:
> yield(int) foo() {
>   yield 5;
> }

The **BIG** advantage of the status quo, where the loop body is a delegate 
instead
of being "magic", is that it enables lots of hackish things to be done, like
running different iterations of the loop in different threads.

Reply via email to