On 24/04/12 13:50, Christophe wrote:
We could also use a template to make a range out of a delegate and avoid
this workarround...
What I'd _really_ like to see is something which would allow you to generate a
range of random numbers with an expression like,
auto rr = randomRange!distribution(/* distribution parameters */);
or,
auto rr = randomRange!distribution(size_t n, /* distribution parameters */);
... which would generate you either an infinite or length-n range of random
numbers generated by the specified distribution, with the passed parameters.
So, you could call e.g.,
auto rr = randomRange!(uniform!"()")(100, 0.0, 1.0);
auto rr = randomRange!pareto(100, alpha, sigma);
auto rr = randomRange!exponential(lambda);
... etc. But I'm not sure if this is feasible.