[Haskell-beginners] Time interval calculation

Daniel Fischer daniel.is.fischer at web.de
Sat Mar 13 15:50:19 EST 2010


Am Samstag 13 März 2010 21:42:12 schrieb legajid:
> After a few efforts, i've understood my mistake.
> I now write :
>    t1d <- gettime
>    putStrLn ("Methode 1 : " ++ show t1d)
>    let t1=last (listeprem 5000)
>    putStrLn ("            " ++ show t1)
>    t1f <- gettime
>    putStrLn ("            " ++ show t1f)
>
> and that's ok.
>
> What i feel shocking is having io code mixed within calculation code.

Right, that's not so good.

> I think it's possible to force calculation of t1d, t1 and t1f  before
> (or without) displaying  their values (i just want t1f - t1d).
> But how to make it ?

Depends on the types. Often a bang-pattern or a `seq` is enough, for other 
types, you might want to look at Control.DeepSeq and 
Control.Parallel.Strategies. NFData, rnf, deepseq, using, demanding, ... 
may help you. For lists, sometimes (length list) `seq` whatever is enough, 
without needing strategies.

>
> Thanks,
> Didier


More information about the Beginners mailing list