[Haskell-beginners] How to display a time difference?
Colin Paul Adams
colin at colina.demon.co.uk
Wed Mar 18 06:28:39 EDT 2009
>>>>> "Yitzchak" == Yitzchak Gale <gale at sefer.org> writes:
Yitzchak> Colin Paul Adams wrote:
>> The code of the following routine is intended to indicate how
>> long it takes for the computer to make a move. However the time
>> is printed (as very close to zero) long before the move is
Yitzchak> You are writing a thunk to the IORef. It only gets
Yitzchak> computed later on when you read the value.
Yitzchak> Try using:
>> readIORef game_state_ior >>= evaluate
>> . update_interactive_from_move move >>= writeIORef
Yitzchak> evaluate is in Control.Exception.
Still no joy with:
play_move :: IORef Game_state -> IO ()
play_move game_state_ior = do
(_, state, _) <- readIORef game_state_ior
putStr "Playing AI: "
start_time <- getCurrentTime
let move = recommended_move state
readIORef game_state_ior >>=
evaluate . update_interactive_from_move move >>=
end_time <- getCurrentTime
putStrLn $ show $ (diffUTCTime end_time start_time)
More information about the Beginners