-
-
Save JoelQ/c93a8f6a81262ff12c93ab2ff859f8e5 to your computer and use it in GitHub Desktop.
-- 0.19 | |
randomToTask : Generator a -> Task x a | |
randomToTask generator = | |
Time.now | |
|> Task.map (Tuple.first << Random.step generator << Random.initialSeed << Time.posixToMillis) | |
-- 0.18 | |
randomToTask : Generator a -> Task x a | |
randomToTask generator = | |
Time.now | |
|> Task.map (Tuple.first << Random.step generator << Random.initialSeed << round) | |
@andys8 because it uses the current time as a seed, the random value more guessable than it otherwise would be (note that regardless of seed value, Random
is not cryptographically secure).
I think it's fine to use this but personally haven't found a need for it. I've never had to combine randomness with other side effects like HTTP requests.
The original version I had up was for Elm 0.18. I've updated the gist with your modified version, labelling it as 0.19 compatible.
Thanks for your answer. I'm aware of the effect on randomness.
I searched for a way to combine Cmd
s. The use case need both a Uuid
(Generator
) and the current Posix
(Task
). There is no Cmd#andThen
but there is Task#andThen
. This snippet is the closest solution I found so far while it's not ideal.
Interesting discussion regarding cmd chaining
https://gist.github.com/alpacaaa/13335246234042395813d97af029b10f
@JoelQ Would you recommend using this? Are there libraries using it?
Had to change it to compile.