On 11/25/2016 07:53 AM, Dennis Ritchie wrote:
On Friday, 25 November 2016 at 11:20:24 UTC, Jonathan M Davis wrote:
Probably the complete lack of a condition to test in for(;;). I
confess that I was shocked when I found out that it was legal to have
a for loop without a condition. That seems like doing while() or if(),
which makes no sense. So, I never use for(;;) and wish that it didn't
exist, but it does, and some folks use it. So, I have to live with the
possiblity of dealing with it when dealing with code written by other
people. But I won't ever use it.
IMO, it is very convenient for system programming guru. It is believed
that it came from the K&R.
For example, this option is definitely very convenient to use:
https://github.com/dlang/phobos/blob/master/std/algorithm/comparison.d#L591
I like that function. If I were to review it now, I'd approve with these
nits:
* drop the parens for popFront
* s/-cast(int)!r2.empty/-int(!r2.empty)/
* Merge with the cmp implementation for strings and simplify the
constraint from
if (isInputRange!R1 && isInputRange!R2 && !(isSomeString!R1 &&
isSomeString!R2))
to
if (isInputRange!R1 && isInputRange!R2)
i.e. it's not relevant to users that the string version has a distinct
implementation.
In fact I suggest someone implements this.
Andrei