On Monday, 17 July 2017 at 12:51:37 UTC, jmh530 wrote:
On Saturday, 15 July 2017 at 15:58:12 UTC, Jonathan M Davis wrote:

    int[] a;
    auto b = a.map!(a => a / 2)();
    pragma(msg, typeof(b));

then it prints out

    MapResult!(__lambda1, int[])

If you have

    int[] a;
    auto b = a.map!(a => a / 2)().map!(a => a)();
    pragma(msg, typeof(b));

then it prints out

    MapResult!(__lambda2, MapResult!(__lambda1, int[]))

If you have

    int[] a;
auto b = a.map!(a => a / 2)().map!(a => a)().filter!(a => a < 7)();
    pragma(msg, typeof(b));

then it prints out

FilterResult!(__lambda3, MapResult!(__lambda2, MapResult!(__lambda1,
int[])))


Is there any way - theoretically - to compute typeof(b) lazily, so that the information is only provided as needed?

typeof(b) is needed as soon as b is declared.
So no.
There is no point in making it lazy.

Reply via email to