[Haskell-cafe] Occurs check error, help!
boblettoj
boblettoj99 at msn.com
Sat Mar 20 23:55:16 EDT 2010
newStdGen results in IO Ints whereas i need normal Ints and it seems theres
no easy way to convert them without a lot more knowledge of haskell. I have
tried using a where clause instead of using do but this is giving me the
occurs check error again!
--function used to shuffle cards
--list equals random member of array plus the rest of the array
--i is randomly generated from range of length equal to that of cards.
shuffle :: Int -> [a] -> [a]
shuffle i [] = []
shuffle i cards = [(cards!!i) : shuffle (fst pair) (delete (cards!!i)
cards)]
where pair = randomR (0, 51) (mkStdGen 42)
and the error:
cards.hs:30:0:
Occurs check: cannot construct the infinite type: a = [a]
When generalising the type(s) for `shuffle'
Failed, modules loaded: none.
hmmm...
--
View this message in context: http://old.nabble.com/Occurs-check-error%2C-help%21-tp27966341p27973881.html
Sent from the Haskell - Haskell-Cafe mailing list archive at Nabble.com.
More information about the Haskell-Cafe
mailing list