On Thursday, 4 July 2013 at 18:06:51 UTC, Jonathan M Davis wrote:
On Thursday, July 04, 2013 19:28:29 w0rp wrote:
I see yield as a tool only for when you only want to create
input
ranges easily. There is a definite value in the other range
types, but yield is useful for when you just want to produce an
input range quickly.
And given how useless pure input ranges are, I really don't see
much value in
that. About all they give you is the ability to iterate over a
set of values
once. The other range types are _far_ more powerful, and pure
input ranges
should be avoided as much as possible IMHO.
- Jonathan M Davis
InputRanges aren't useless, that's just wrong. When chaining
ranges together, you are locked to the most limited range
available. If you use network IO, database access, and many other
comment tasks, you are left with InputRanges.
While the other range types are certainly more powerful, and a
definite path to take when implementing libraries, like
std.algorithm, sometimes you just don't need all of that power.
Yield is much simpler, and when that's all you need, why
complicate matters?