[Haskell-cafe] Re: Occurs check error, help!
Ivan Miljenovic
ivan.miljenovic at gmail.com
Sun Mar 21 23:12:55 EDT 2010
On 22 March 2010 13:49, adamtheturtle <kill2thrill at hotmail.com> wrote:
> 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?
Yes: do what it says!
Hint: http://hackage.haskell.org/package/random-shuffle
--
Ivan Lazar Miljenovic
Ivan.Miljenovic at gmail.com
IvanMiljenovic.wordpress.com
More information about the Haskell-Cafe
mailing list