On Wednesday, 5 February 2014 at 12:18:15 UTC, Idan Arye wrote:
Your `foreach` is ugly because you need to look closely to see the boundary between the functional chain and the iterative execution.

In this case, adding a block makes things much more elegant:


    foreach (e; someInputRange
               .filter!()
               .map!())
    {
            e.someOperation();
    }

I think that's a bit of an exaggeration. A hypothetical each() function would almost always be at the end of a UFCS chain, making it clear that it's iterating and consuming the result. This is no worse than putting .array at the end of a chain to force evaluation (and is actually much clearer about intent).

Reply via email to