Is there a way to pipeline program with random-access ranges in C#?

Dukc ajieskola at gmail.com
Mon Mar 19 17:33:31 UTC 2018


On Monday, 19 March 2018 at 14:41:27 UTC, rumbu wrote:
> Sorry, but I fail to understand your requirements. Do you have 
> a practical example?

Doing this without writing a loop or using arrays for memoizing 
half-finished calculations:

public static int Foo(int[] input)
{   int result = 10;
     for (int i = input.Length / 4; i >= 0; i -= 4)
     {   int sum = 0;
         for (int j = i; j < i +4 && j < input.Length; j++) sum += 
input[j];
         sum *= i;
         result = (result + sum) / 2;
     }
     return result;
}

To be honest, this is as artificial as it looks. When I look 
again at my code, it seems that my main problem was that I have 
not made a habit to input.Zip(Enumerable.Range(0, inputLength), 
Tuple.Create) or similar when I need indexing in C# :).

I'm still interested in the answer, though.


More information about the Digitalmars-d-learn mailing list