On Sunday, 18 February 2018 at 15:23:14 UTC, Cym13 wrote:
On Sunday, 18 February 2018 at 14:48:59 UTC, Cym13 wrote:
[...]

Just thought of a much better/simpler solution for that last case that also doesn't force you to read all data (which might be impossible when dealing with infinite ranges):

    import std.range;
    import std.algorithm;

    a[]
.enumerate // get tuples (index, value) .filter!(t => t[1] == "Test2") // keep only if value == "Test2" .map!(t => t[0]) // keep only the index part
     .writeln;

Completely lazy.

How does one detect an operation as lazy or not? Is the some compile-time or runtime check for that?

My guess is by referring to the docs function signature.

Reply via email to