Does D have too many features?

Dmitry Olshansky dmitry.olsh at gmail.com
Mon Apr 30 00:48:34 PDT 2012


On 30.04.2012 7:45, H. S. Teoh wrote:
> On Sun, Apr 29, 2012 at 04:40:37PM +0200, Jacob Carlborg wrote:
[snip]
> So you might say, OK, just write this then:
>
> 	for(;;) {
> 		auto line = nextLine();
> 		if (eof())
> 			break;
> 		processLine(line);
> 	}
>
> Well, finally you have something sane. The loop condition now correctly
> appears in the middle of the loop body, which is where it should've been
> all along. Only problem is, writing for(;;) is misleading, because
> you're not looping indefinitely, there's precisely one exit condition.
> Conveying intent is very important in writing good code, and this code
> breaks that principle.
>
> So really, what is needed is a sane looping construct that unifies while
> loops, do-loops, and exit-in-the-middle loops. Something like this:
>
> 	loop {
> 		// first part of loop body
> 	} exitWhen(!loopCondition) {
> 		// second part of loop body
> 	}
>

You'd love PL/SQL. :)

-- 
Dmitry Olshansky


More information about the Digitalmars-d mailing list