On Fri, Feb 6, 2009 at 2:30 PM, Andrei Alexandrescu
<seewebsiteforem...@erdani.org> wrote:
> Walter Bright wrote:
>>
>> double euclideanDistance(Range)(Range a, Range b, double limit)
>> {
>>    limit *= limit;
>>    double result = 0;
>>    for (; 1; a.next, b.next)
>>    {
>>        if (a.empty)
>>        {
>>           enforce(b.empty);
>>           break;
>>        }
>>        enforce(!b.empty);
>>        auto t = a.head - b.head;
>>        result += t * t;
>>        if (result >= limit) break;
>>    }
>>    return sqrt(result);
>> }
>
> Gotta give it to The Man!
>
> So after all I couldn't find a good use for goto.

Meh.  I dislike seeing things like for(; 1; ) or while(true) in a loop
(unless it's something like a top level message processing loop or
such).  At least in your goto version I know from a glance at the
for() part  that at most we're going to iterate till the thing is
empty.

--bb

Reply via email to