On Oct 17, 2006, at 12:21 PM, Víctor A. Rodríguez wrote:
Hi all,
I'm really newbie to Haskell, and working on a program I'm trying
to make
some testing.
I make some test on certain know values ( e.g. adding 10 to 15 must
return
25) and some test on random values (eg. adding rnd1 to rnd2 must
return
rnd1+rnd2).
Probably the best way to deal with this is to use the QuickCheck
library.
http://www.cs.chalmers.se/~rjmh/QuickCheck/
It makes this sort of thing fairly painless, because you don't have
to muck about with generating random data manually.
The problem that makes me mad is the random number generation. I
can obtain
random numbers through module Random but all of them return IO Int
values
(all I need are Ints) instead of Int.
I know that I can adjust my own functions to use IO Int instead of
Int but
the call to certain functions must contain Int parameters, because
these
ones can't be changed to accept IO Int (I read
http://haskell.org/hawiki/ThatAnnoyingIoType and know that can
convert from
IO Int to Int :-P).
How can I deal with this problem ??
See: http://www.haskell.org/ghc/dist/current/docs/libraries/base/
System-Random.html
If you use 'getStdGen' or 'newStdGen' (which are in the IO monad),
then you can later use the pure functions 'random', 'randomR' and
friends. Alternately, you can manually seed the PRNG with 'mkStdGen'
and avoid the IO monad altogether.
Thanks in advance.
--
Víctor A. Rodríguez (http://www.bit-man.com.ar)
El bit Fantasma (Bit-Man)
Perl Mongers Capital Federal (http://cafe.pm.org/)
GNU/Linux User Group - FCEyN - UBA (http://glugcen.dc.uba.ar/)
Rob Dockins
Speak softly and drive a Sherman tank.
Laugh hard; it's a long way to the bank.
-- TMBG
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe