On 3/6/18 9:50 AM, ixid wrote:
On Tuesday, 6 March 2018 at 14:37:27 UTC, Steven Schveighoffer wrote:
Now, there aren't actually docs for Transposed, but you can find it if
you look at std.range.transposed:
https://dlang.org/phobos/std_range.html#transposed
Thanks, I had found that but that is not an explanation unless you have
a lot of prior technical understanding of what save is and why it's not
working. I guess it's a general doc quality issue - unless you're
already very knowledgeable it's pretty much useless to understand the
problem you have.
There are 2 problems. One is that Transposed offered .save as a member,
when it shouldn't have (it's not a valid forward range). This is clear
from trying to even use it as a forward range. Even when you call save,
it destroys the original.
The other problem is that I think algorithms are seeing that .save is
there, and thinking it's a forward range, so using it that way.
I transposed a range of ranges to pass to a function to get the distance
between characters in strings. That works fine, as does printing the
result. But it then complains if I try to do anything like fold with the
result.
I have no idea how save is called, but apparently it is somewhere in there.
-Steve