
boblettoj
Yes sorry, that line should be indented, now it gives me a bigger error :( What that line is trying to achieve is return a list where the first element is the card at the given random number in the first list and the rest of the list should be fed back in to shuffle along with a new random number.
shuffle :: Int -> [a] -> [a] shuffle i [] = [] shuffle i cards = do gen <- mkStdGen return ([(cards!!i) : (shuffle (randomR (0, ((length cards)-2)) gen) (delete (cards!!i) cards))])
First of all, why are you using a do block? Secondly, mkStdGen :: Int -> StdGen : you need to provide it with a number and it doesn't return a monadic value, so you can't use <- with it. Thirdly, have a look at randoms and randomRs. -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com