[Haskell-beginners] Re: Time interval calculation

Maciej Piechotka uzytkownik2 at gmail.com
Sat Mar 13 22:21:21 EST 2010


On Sat, 2010-03-13 at 21:20 +0100, legajid wrote:
> Hi,
> my following code should show time before executing listeprem, then time 
> after execution.
> 
> import System.Time
import Control.Exception

> gettime :: IO ClockTime
> gettime = getClockTime
> 
> main=do
>     t1d <- gettime
>     let t1=last (listeprem 5000)

      evaluate t1

>     t1f <- gettime
>     putStrLn ("Methode 1 : " ++ show t1d)
>     putStrLn ("            " ++ show t1)
>     putStrLn ("            " ++ show t1f)
> 
> Looking at the screen, t1d is displayed then, after a few seconds, t1 
> and t1f.
> But, t1d and t1f are equal.
> It seems like if t1d and t1f where calculated at start of procedure, 
> before we need calculating t1 for putStrLn.
> How can i have t1f evaluated after t1, so i can calculate time elapsed 
> for calculation of t1?
> 
> Thanks,
> Didier
> 
> 

Haskell calculates the expression when it needs. So 
let t1 = last (listeprem 5000)

Means rather 't1 is expression ....' then calculate .... and save result
in t1. evaluate is a nice function that forces the evaluation.

Regards

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part
Url : http://www.haskell.org/pipermail/beginners/attachments/20100313/9fb84440/attachment.bin


More information about the Beginners mailing list