On Jan 26, 2007, at 4:56 PM, Sean McLaughlin wrote:

Hello,

I'm trying to write a simple function to time an application.

-- this doesn't work

time f x =
  do n1 <- CPUTime.getCPUTime
     let res = f x in
       do n2 <- CPUTime.getCPUTime
          return (res,n2 - n1)

On a function that takes 8 seconds to complete, returns
(True,46000000)

Remember that Haskell is lazy -- res won't be evaluated until it is forced. See the evaluate function in Control.Exception to force a value in the IO monad.


Spencer Janssen
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to