Ranges with length that cannot be named

Joseph Rushton Wakeling joseph.wakeling at webdrake.net
Wed Sep 18 19:27:44 UTC 2019


On Wednesday, 18 September 2019 at 19:21:23 UTC, John Colvin 
wrote:
> Maybe I'm misunderstanding, but are you missing that you can 
> just not define the length member? Then your range doesn't have 
> a defined length (it might be infinite, it might be length 0, 
> it might 2*ulong.max).

There is also quite a nice thing that Rust has for its iterators, 
where it defines the bounds that the length could be.  This means 
that for example one can define cases with a clear upper bound on 
length but no well defined lower bound (e.g. the results of 
applying a filter to a range), but also cases which have a clear 
_lower_ bound without defining an upper bound (which could have 
several uses, including the case described here where the length 
is guaranteed finite but larger than size_t.max).


More information about the Digitalmars-d mailing list