-
-
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 Cmds. 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.