[Haskell-cafe] Simple program. Simple problem?

Peter Verswyvelen bugfact at gmail.com
Sun Oct 11 18:24:26 EDT 2009


It always helps to put a Debug.Trace.trace:
                    in if trace (show (fromEnum c)) $ c == ((!!) "ht"
randInt) then p

What's your guess, heads or tails ('h' or 't')?
h
104
You win!
What's your guess, heads or tails ('h' or 't')?
*10*
You lose!
What's your guess, heads or tails ('h' or 't')?

So getChar also receives the linefeed character.

An easy way to get around this, is to use getLine instead and just use the
first character, as in

               >> fmap head getLine

But of course we're hacking away here :-)

On Mon, Oct 12, 2009 at 12:10 AM, michael rice <nowgate at yahoo.com> wrote:

> 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 at 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 at localhost ~]$
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20091011/bc801c74/attachment.html


More information about the Haskell-Cafe mailing list