Hector Guilarte <hector...@gmail.com> writes: > I need to randomly select ONE of the valid conditions and execute it's > instruction. I know there is a Random Monad, but it returns an IO > Int,
No, this is not right. Values in the Random monad are computations that rely on randomness, but they can produce values of arbitrary type. (The 'a' in 'Random a', no?) > Is there anyway I can do some Random that doesn't involve IO? or any other > solution? Some options are: 1. Use the IO monad 2. Use the Random monad 3. Pass around a RandomGen explicitly 4. Generate an infinite stream of random values, and pass that around I think option 2 is the nicest, but option 4 may work if the use of randomness is limited. No. 3 does the same as 2 (I presume, I never looked) but with a lot more noise in your code, and no. 1 erases the separation between real IO, and computations -- which IME includes a lot of them -- that happen to depend on randomness (but require no other IO). -k -- If I haven't seen further, it is by standing in the footprints of giants _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe