protocol for using InputRanges
monarch_dodra
monarchdodra at gmail.com
Thu Mar 27 15:03:32 PDT 2014
On Thursday, 27 March 2014 at 21:54:00 UTC, Andrei Alexandrescu
wrote:
> On 3/27/14, 1:58 PM, Walter Bright wrote:
>> On 3/27/2014 12:50 PM, Andrei Alexandrescu wrote:
>>> Yah, agreed. -- Andrei
>>
>> Completely unworkable. To determine if a range is empty or
>> not, it may
>> have to actually read from its input. TTYs are an example.
>> Although
>> empty may then cache the result, and not read the second time
>> it is
>> called, an observer of TTY could see that an item was read
>> from the TTY.
>
> That's a good point too.
>
> Andrei
Yes, but the "observability" should be sort lived, since empty is
virtually guaranteed to be followed by "front" anyways. If both
front/empty do the same (lazy) operation on the stream, then
whether or not empty was called isn't really "observable" (to a
certain extent).
In contrast, having front completly fail if empty was NOT called,
means "empty" has a hell of a lot of observable side effect.
More information about the Digitalmars-d
mailing list