"bearophile" , dans le message (digitalmars.D.learn:35108), a écrit : > What about (untested): > > auto uniformRange(T1 lower, T2 upper) { > return count().map!(_ => uniform(lower, upper))(); > }
That looks like a workarround, not meaningful code. How about return repeat(_ =>uniform(lower, upper)).map!(x => x())(); ? We could also use a template to make a range out of a delegate and avoid this workarround... struct RepeatDg(T) { T delegate() dg; this(T delegate() dg_) { dg = dg_; } @property enum bool empty = false; @property T front() { return dg(); } @property void popFront() {} }