[Haskell-beginners] Random Generator
Shishir Srivastava
shishir.srivastava at gmail.com
Wed Apr 1 15:08:42 UTC 2015
Hi,
I am trying to use the output value from the random function to generate
the random generator for the next value in list.
Below is the code -
----
import System.Random
myrandoms :: (RandomGen g, Random a) => g -> [a]
myrandoms gen = let (value, newGen) = random gen in value:myrandoms
(mkStdGen (value::Int))
----
however the compilation fails when the module is loaded -
[1 of 1] Compiling Main ( myrandoms.hs, interpreted )
myrandoms.hs:3:80:
Could not deduce (a ~ Int)
from the context (RandomGen g, Random a)
bound by the type signature for
myrandoms :: (RandomGen g, Random a) => g -> [a]
at myrandoms.hs:2:14-48
`a' is a rigid type variable bound by
the type signature for
myrandoms :: (RandomGen g, Random a) => g -> [a]
at myrandoms.hs:2:14
Relevant bindings include
value :: a (bound at myrandoms.hs:3:22)
myrandoms :: g -> [a] (bound at myrandoms.hs:3:1)
In the first argument of `mkStdGen', namely `(value :: Int)'
In the first argument of `myrandoms', namely
`(mkStdGen (value :: Int))'
----------
Even though I am converting my 'value' parameter to Int in my new
generator, I am unable to see the error behind this.
Please can someone explain or even better provide a fix.
Thanks,
Shishir
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20150401/8c08eba7/attachment.html>
More information about the Beginners
mailing list