[Haskell-cafe] Re: Occurs check error, help!
adamtheturtle
kill2thrill at hotmail.com
Sun Mar 21 22:49:33 EDT 2010
boblettoj <boblettoj99 <at> msn.com> writes:
>
>
> Haha, much better now!
> Thanks for all your help, it's working great!
>
>
Just tried the code
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 I get:
Could not deduce (Eq a) from the context ()
arising from a use of `delete' at Cards.hs:(23,51)-(24,8)
Possible fix:
add (Eq a) to the context of the type signature for `shuffle'
In the second argument of `shuffle', namely
`(delete (cards !! i) cards)'
In the second argument of `(:)', namely
`shuffle (fst pair) (delete (cards !! i) cards)'
In the expression:
(cards !! i) : shuffle (fst pair) (delete (cards !! i) cards)
Failed, modules loaded: none.
Any ideas?
More information about the Haskell-Cafe
mailing list