[Haskell-cafe] Avoid sharing
list at mroth.net
Tue Nov 8 18:28:18 UTC 2016
Yes, dropping 1000000000 entries is bad, 'someGenerator' was thought as
an deputy only. In reality I have some sort of generator which generates
a large system state varying over time. It was my fault I didn't state
Thank you for the interesting reading about RNGs anyway.
Am 07.11.2016 um 21:56 schrieb Edward Z. Yang:
> It's not guaranteed. Unfortunately there aren't really good ways
> to avoid sharing; the general advice is to convert values into
> functions, and apply them at the use site where sharing is OK.
> Unrelatedly, in your sample code, dropping 1000000000 entries
> is not a good way to build a splittable RNG. Check out
> and also its related work for some bettera pproaches.
> Excerpts from Michael Roth's message of 2016-11-07 20:56:54 +0100:
>> Hello! A short question, given:
>> data Seed = ...
>> data Value = ...
>> someGenerator :: Seed -> [Value]
>> createTwo :: Seed -> ([Value], [Value])
>> createTwo s = (as, bs) where
>> as = someGenerator s
>> bs = drop 1000000000 (someGenerator s)
>> Is it guaranteed that 'someGenerator s' is created twice and not shared
>> between 'as' and 'bs'? Is this by language design? Are there any GHC
>> options that change the behaviour?
>> Thank you,
More information about the Haskell-Cafe