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?