Thread overview |
---|
April 26, 2016 Lazy Generation of Random Sequence | ||||
---|---|---|---|---|
| ||||
How do I lazily generate a sequence of random instances of type `T` as an `InputRange`? |
April 26, 2016 Re: Lazy Generation of Random Sequence | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | 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...
|
April 26, 2016 Re: Lazy Generation of Random Sequence | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | 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 |
April 26, 2016 Re: Lazy Generation of Random Sequence | ||||
---|---|---|---|---|
| ||||
Posted in reply to Seb | 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?
|
April 26, 2016 Re: Lazy Generation of Random Sequence | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | 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?
|
April 26, 2016 Re: Lazy Generation of Random Sequence | ||||
---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | 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).
|
Copyright © 1999-2021 by the D Language Foundation