[Haskell] randomgen for foreign random functions
Hal Daume III
hdaume at ISI.EDU
Fri Jun 25 16:38:07 EDT 2004
> What were you planning on doing with the "g" parameter?
Well, one thought would be to use some type class magicery to try to use
this to ensure linearity, but I have no idea how to go about that.
Another thing that had crossed my mind was to use unsafeInterleaveIO to
generate an infinite list of random #s according to the IO function and
store these in g and then just take 1 off the head at each call...I don't
know whether this is safe or not, though.
> AFAICT, unless you can get at c_gengam's state, you can't (safely) get
> the Haskell version out of the IO monad. OTOH, if you have a means to
> set the seed, you could combine the two into a pure function, and thus
> provide a pure (non-IO) Haskell interface. E.g. if you had:
Hrm. Getting at its state is really a bother and, while I probably could,
it would make me a very unhappy camper.
> [Although, in the second approach, I presume that you would need
> addtional code for multi-threaded use.]
I don't care about multi-threaded use.
- Hal
--
Hal Daume III | hdaume at isi.edu
"Arrest this man, he talks in maths." | www.isi.edu/~hdaume
More information about the Haskell
mailing list