www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Lazy Generation of Random Sequence

reply =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
How do I lazily generate a sequence of random instances of type 
`T` as an `InputRange`?
Apr 26 2016
parent reply =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
On Tuesday, 26 April 2016 at 10:31:22 UTC, Nordlöw wrote:
 How do I lazily generate a sequence of random instances of type 
 `T` as an `InputRange`?
Ahh, I found it: import std.range : generate, take; import std.random : uniform; auto randomSamples = generate!(() => uniform!Key).take(n); I should have guessed that...
Apr 26 2016
parent reply Seb <seb wilzba.ch> writes:
On Tuesday, 26 April 2016 at 10:50:27 UTC, Nordlöw wrote:
 On Tuesday, 26 April 2016 at 10:31:22 UTC, Nordlöw wrote:
 How do I lazily generate a sequence of random instances of 
 type `T` as an `InputRange`?
Ahh, I found it: import std.range : generate, take; import std.random : uniform; auto randomSamples = generate!(() => uniform!Key).take(n); I should have guessed that...
Btw if you do random generation at the moment, you should always be aware that it's super-easy to do an implicit copy if you pass around the rndGen, see: http://dconf.org/2015/talks/wakeling.html
Apr 26 2016
parent reply =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
On Tuesday, 26 April 2016 at 11:09:42 UTC, Seb wrote:
 Btw if you do random generation at the moment, you should 
 always be aware that it's super-easy to do an implicit copy if 
 you pass around the rndGen
So should I pass it by ref or const ref then?
Apr 26 2016
next sibling parent =?UTF-8?B?Tm9yZGzDtnc=?= <per.nordlow gmail.com> writes:
On Tuesday, 26 April 2016 at 17:38:33 UTC, Nordlöw wrote:
 On Tuesday, 26 April 2016 at 11:09:42 UTC, Seb wrote:
 Btw if you do random generation at the moment, you should 
 always be aware that it's super-easy to do an implicit copy if 
 you pass around the rndGen
So should I pass it by ref or const ref then?
Doh. Const ref is of no use... just by ref then, right?
Apr 26 2016
prev sibling parent Seb <seb wilzba.ch> writes:
On Tuesday, 26 April 2016 at 17:38:33 UTC, Nordlöw wrote:
 On Tuesday, 26 April 2016 at 11:09:42 UTC, Seb wrote:
 Btw if you do random generation at the moment, you should 
 always be aware that it's super-easy to do an implicit copy if 
 you pass around the rndGen
So should I pass it by ref or const ref then?
I guess both work fine, but this was just a warning for other case. The example that WebDrake mentioned on his slides can happen too easily - a reason why we should fix it (which is on my agenda).
Apr 26 2016