Is there something like a consuming take?

berni someone at somewhere.com
Sat Jul 6 15:32:50 UTC 2019


On Saturday, 6 July 2019 at 14:48:04 UTC, Adam D. Ruppe wrote:
> [...]
> So this is a case of input range behavior - always consuming 
> the underlying file - combined with buffering of two elements 
> at once, leaving 5,6 behind, and the reuse of the buffer 
> meaning you see that 5,6 again on the next call.

Thanks for clearifing what happens. In my oppinion the behaviour 
of take() should be better defined. It's clear, that take() 
returns a range with the first n elements of the underlaying 
range (and that is done lazily). But it's not specified what 
happens with the underlaying range. As the behaviour is 
unpredictable (or at least hard to predict), one should assume, 
that the underlaying range is completely destroyed by take(). 
This makes take() much less usefull, than it could be, in my 
eyes. :-(




More information about the Digitalmars-d-learn mailing list