It always helps to put a Debug.Trace.trace:
What is going wrong here?
Michael
=======
import System.Random
coinToss :: StdGen -> IO ()
coinToss gen = putStrLn "What's your guess, heads or tails ('h' or 't')?"
>> getChar
>>= \c -> let (randInt, _) = randomR(0,1) gen :: (Int, StdGen)
in if c == ((!!) "ht" randInt) then putStrLn "You win!" else putStrLn "You lose!"
main = do
gen <- getStdGen
coinToss gen
gen <- newStdGen
main
=======
[michael@localhost ~]$ runhaskell cointoss.hs
What's your guess, heads or tails ('h' or 't')?
h
You win!
What's your guess, heads or tails ('h' or 't')?
You lose!
What's your guess, heads or tails ('h' or 't')?
h
You lose!
What's your guess, heads or tails ('h' or 't')?
You lose!
What's your guess, heads or tails ('h' or 't')?
^Ccointoss.hs: cointoss.hs: interrupted
[michael@localhost ~]$
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe