Hi All --
Say I have a foreign function:
foreign import ccall "statistical_c.h gengam" c_gengam :: CDouble -> CDouble -> IO
CDouble
that returns a random value parameterized by the two CDoubles. clearly
this must happen in IO since the return value will be different each time,
and some global state stuff is getting modified on the C side to
facilitate future random # generation.
However, I would like to wrap this into an essentially pure function, ala
the Random class. basically, i want to wrap this up as something like:
gengam :: RandomGen g => g -> Double -> Double -> (g, Double)
analogously to the normal random # generation stuff.
is there a safe way to do this? one option, of course, is just to
unsafePerformIO it and {-# NOINLINE #-} the call, but that is rather, uhm,
unsafe, I believe. it seems to me that something like this should be
possible.
Any thoughts?
- Hal
--
Hal Daume III | [EMAIL PROTECTED]
"Arrest this man, he talks in maths." | www.isi.edu/~hdaume
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell